문제:
읽고 표시하려고 할 때 PHP while 루프(!feof())를 사용하여 텍스트 파일의 내용을 출력하지만 모든 데이터가 출력되는 것은 아닙니다. 파일의 마지막 문자열이 잘립니다.
답변:
이 문제의 근본 원인은 EOF 검사 위치에 있습니다. 원본 코드는 마지막 줄을 출력하기 전에 파일의 끝을 확인했습니다. 이로 인해 마지막 줄이 부분적으로 잘렸습니다.
이 문제를 해결하려면 읽기 프로세스 내에 EOF 검사를 통합해야 합니다. 수정된 코드는 다음과 같습니다.
<?php $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; ?>
추가 고려 사항:
이 수정된 코드를 사용하면 텍스트 파일의 전체 내용을 성공적으로 읽고 마지막 줄을 포함하여 표시됩니다.
위 내용은 내 PHP `while (!feof())` 루프가 불완전한 파일 출력을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!