PHP While 루프(!feof())가 완전한 데이터를 출력하지 않습니다
.txt의 전체 내용을 읽고 표시하려고 할 때 while 루프(!feof())를 사용하여 파일을 실행하면 루프가 출력을 완료하지 않아 파일의 끝을 건너뛰거나 잘리는 문제가 사용자에게 발생할 수 있습니다. 파일. 이 문제는 최종 읽기 작업 전에 EOF(파일 끝) 테스트가 발생할 때 발생합니다.
이 문제를 해결하려면 읽기 프로세스의 일부로 EOF 검사를 수행하도록 루프 구조를 수정하는 것이 좋습니다. . 향상된 코드 조각은 다음과 같습니다.
$handle = fopen("item_sets.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; } } else { echo 'Unexpected error opening file'; } fclose($handle);
또한 @를 사용하여 오류를 억제하는 것보다 명시적으로 오류를 처리하는 것이 좋습니다. 개선된 코드 조각:
$line_count = 0; $handle = fopen("item_sets.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; $line_count++; } } else { echo 'Unexpected error opening file'; } fclose($handle); echo PHP_EOL.PHP_EOL.PHP_EOL.'Lines read from file = ' . $line_count;
제공된 데이터 파일로 이 코드를 테스트하면 파일의 마지막 항목을 포함하여 올바른 출력이 생성됩니다.
[aa_fade_revolver]weapon_revolver" "1"
위 내용은 내 PHP `while (!feof())` 루프가 전체 파일을 읽지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!