Categories
PHP

PHP에서 문자열을 정수나 실수로 변환하는 방법

문자열을 숫자로 변환하는 방법은 2가지가 있다. 함수를 이용할 수도 있고 타입 (type) 캐스팅을 이용할 수도 있다.

1. 함수를 이용한 방법

intval() 함수는 주어진 값을 정수형으로 변환하여 리턴한다.

floatval() 함수는 주어진 값을 실수형으로 변환하여 리턴한다.

echo intval("3.141592") . "<br>";    // 3 을 출력한다.
echo intval("-3.141592") . "<br>";    // -3 을 출력한다.
echo intval("+3.141592") . "<br>";    // 3 을 출력한다.

echo floatval("3.141592") . "<br>";    // 3.141592 를 출력한다.
echo floatval("-3.141592") . "<br>";    // -3.141592 를 출력한다.
echo floatval("+3.141592") . "<br>";    // 3.141592 를 출력한다.

2. 타입 캐스팅

타입 캐스팅을 통해 문자열을 정수형이나 실수형으로 변환한다.

$pi_str = "3.141592"
echo gettype($pi_str) . "<br>";    // string 을 출력한다.

$pi_int = (int) $pi_str;    // 정수형으로 캐스팅한다.
echo gettype($pi_int) . "<br>";    // integer 를 출력한다.
echo $pi_int . "<br>";    // 3 을 출력한다.

$pi_float = (float) $pi_str;    // 실수형으로 캐스팅한다.
echo gettype($pi_float) . "<br>";    // double 을 출력한다.
echo $pi_float . "<br>";    // 3.141592 를 출력한다.

gettype() 은 변수의 자료형을 리턴하는 함수이다.

Categories
PHP

PHP에서 자주 쓰이는 문자열 함수: strlen, substr, strpos, strrpos

PHP 에서 자주 쓰이는 문자열 함수에 대해 알아보자.

1. 문자열의 길이 구하기

문자열의 길이를 구할 때는 strlen() 함수를 쓴다.

$len = strlen("www.xtmci.com");
echo $len;    // 13 을 출력한다.

2. 문자열의 일부를 추출하기

substr() 함수는 주어진 문자열의 일부를 리턴한다.

$str = "0123456789";
echo substr($str, 0, 4);    // 0123 을 출력한다.
echo substr($str, 4);    // 456789 를 출력한다.
echo substr($str, -4);    // 6789 를 출력한다.
echo substr($str, -4, 2);    // 67 을 출력한다.

3. 문자열에서 부문자열 찾기

strpos() 함수는 문자열에서 부문자열 (substring) 이 처음 나타나는 위치를 리턴한다. 검색에 실패하면 false 를 리턴한다.

$str = "www.xtmci.xtmci.com";
echo strpos($str, "www");    // 0 을 출력한다.
echo strpos($str, "xtmci");    // 4 를 출력한다.
echo strpos($str, "com");    // 16 을 출력한다.

strrpos() 함수는 문자열에서 부문자열이 마지막으로 나타나는 위치를 리턴한다. 검색에 실패하면 false 를 리턴한다.

$str = "www.xtmci.xtmci.com";
echo strrpos($str, "www");    // 0 을 출력한다.
echo strrpos($str, "xtmci");    // 10 을 출력한다.
echo strrpos($str, "com");    // 16 을 출력한다.

Categories
PHP

PHP에서 자주 쓰이는 파일시스템 함수: fopen, fclose, fread, fwrite

PHP 에서 자주 쓰이는 파일 시스템 함수에 대해 알아보자.

1. fopen() 함수

fopen() 함수는 파일을 열고 파일 포인터를 리턴한다.

$fp = fopen(“xtmci.txt”, “r”);

두번째 인자는 파일을 여는 모드 (mode) 이다. “r” 는 읽기 전용 모드이다.

쓰기 전용 모드는 “w” 모드와 “a” 모드가 있다. “w” 모드에서는 파일의 처음부터 쓴다. “a” 모드에서는 파일의 끝에서 쓰기 시작한다.

2. fclose() 함수

fclose() 함수는 파일을 닫는다.

fclose($fp);

열린 파일의 포인터를 인자로 받는다. 파일 닫기에 성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.

3. fread() 함수

fread() 함수는 지정한 바이트 수만큼 파일을 읽는다. 리턴값은 문자열이다. 실패 시에는 false 를 리턴한다.

$string = fread($fp, 80);    // 80 바이트를 읽는다.

fread() 함수로 파일 전체를 읽어보자.

$filename = "xtmci.txt";
$fp = fopen($filename, "r");    // 파일을 연다.
$long_string = fread($fp, filesize($filename));    // 파일 전체의 크기 만큼 읽는다.
fclose($fp);    // 파일을 닫는다.
echo $long_string;    // 읽은 내용을 출력한다.

filesize() 함수는 파일의 크기를 바이트 단위로 알려준다.

4. fwrite() 함수

fwrite() 함수는 지정한 문자열의 내용을 파일에 쓴다. 성공하면 파일에 쓴 바이트 수를 리턴한다. 실패하면 false 를 리턴한다.

$fp = fopen("test.txt", "w");    // 파일을 쓰기 모드로 연다.
$num = fwrite($fp, "xtmci.com");    // 파일에 문자열을 쓴다.
fclose($fp);    // 파일을 닫는다.
echo $num;    // 9 바이트를 썼으므로 9 를 출력한다.

Categories
PHP

PHP에서 텍스트 파일을 한 줄씩 (line by line) 읽기

PHP 에서 텍스트 파일을 라인 (line) 단위로 읽는 방법을 알아보자.

1. fgets() 함수

fgets() 함수는 파일 포인터로부터 하나의 라인을 읽는다. 읽을 데이터가 없을 경우에는 false 를 리턴한다.

텍스트 파일을 읽기 전용 모드로 연다.

$fp = fopen(“xtmci.txt”, “r”);

while 루프와 fgets() 함수로 파일을 읽어보자.

while (($line = fgets($fp)) !== false) {    // 리턴값이 false 가 아닐 경우 계속 읽는다.
  echo $line;    // 읽은 라인을 출력한다. $line 변수에는 개행 문자가 포함되어 있다.
}
  

파일을 닫는다.

fclose($fp);

읽어들인 라인에서 개행 문자를 제거할 때는 rtrim() 함수를 쓴다.

$line = rtrim($line);

2. file() 함수

file() 함수는 파일 전체를 읽어 라인 단위로 배열에 저장한다. 읽기에 실패할 경우에는 false 를 리턴한다.

텍스트 파일을 읽어 배열에 저장해 보자.

$arr_lines = file(“xtmci.txt”);

배열의 각 요소는 텍스트 파일의 각 라인에 대응한다. 읽어들인 개행 문자는 보존된다.

foreach 루프로 배열의 각 요소를 출력한다.

foreach ($arr_lines as $line) {
  echo $line;
}

file() 함수를 쓸 경우에는 별도로 파일을 열고 닫는 작업이 필요없다. 함수 내부에서 자동으로 수행되기 때문이다.