PHP의 fgets
함수
fgets
함수는 파일 포인터에서 한 줄씩 문자열을 읽어옵니다. 파일을 한 줄씩 처리해야 할 때 유용하며, 파일 포인터는 읽은 줄 다음으로 이동합니다. 읽어온 문자열에는 개행 문자(\n
)가 포함됩니다.
fgets
함수의 사용 예시:
$filename = 'example.txt';
$file = fopen($filename, 'r');
if (!$file) {
die("Error opening file");
}
while (($line = fgets($file)) !== false) {
// 줄 처리
echo $line;
}
fclose($file);
다른 함수와 함께 사용하는 예시:
feof
함수와 함께 사용하기 (파일의 끝까지 줄 단위로 읽기):
$filename = 'example.txt';
$file = fopen($filename, 'r');
if (!$file) {
die("Error opening file");
}
while (!feof($file)) {
$line = fgets($file);
// 줄 처리
echo $line;
}
fclose($file);
file
함수와 함께 사용하기 (파일의 모든 줄을 배열로 읽기):
$filename = 'example.txt';
$lines = file($filename, FILE_IGNORE_NEW_LINES);
foreach ($lines as $line) {
// 줄 처리
echo $line;
}
조건문과 반복문과 함께 사용하는 예시:
$filename = 'example.txt';
$file = fopen($filename, 'r');
if (!$file) {
die("Error opening file");
}
$targetKeyword = 'apple';
$found = false;
while (($line = fgets($file)) !== false) {
// 특정 키워드가 포함되어 있는지 확인
if (strpos($line, $targetKeyword) !== false) {
$found = true;
break;
}
}
fclose($file);
if ($found) {
echo "Keyword '$targetKeyword' found!";
} else {
echo "Keyword '$targetKeyword' not found.";
}
성능 향상을 위한 팁:
-
fgets
함수를 사용할 때는 가능하면 버퍼 크기를 지정하여 한 번에 많은 데이터를 읽어오는 방법을 고려해야 합니다.fread
함수를 사용하여 지정한 바이트 수만큼 읽어올 수 있습니다. -
큰 파일을 처리할 때는 메모리 사용을 최적화하기 위해 가능하면 한 줄씩 또는 더 큰 덩어리로 읽어오는 방법을 사용하는 것이 성능 향상에 도움이 됩니다.