> 백엔드 개발 > PHP 튜토리얼 > 내 PHP `while (!feof())` 루프가 불완전한 파일 출력을 생성하는 이유는 무엇입니까?

내 PHP `while (!feof())` 루프가 불완전한 파일 출력을 생성하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-04 16:07:13
원래의
480명이 탐색했습니다.

Why Does My PHP `while (!feof())` Loop Produce Incomplete File Output?

PHP while 루프(!feof()) 불완전한 출력 문제

문제:

읽고 표시하려고 할 때 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;
?>
로그인 후 복사

추가 고려 사항:

  • 오류 메시지를 표시하지 않고 나쁜 습관으로 간주되므로 fopen 앞의 @ 기호를 제거했습니다.
  • 예기치 않은 파일 열기에 대한 오류 처리 추가 오류가 발생했습니다.
  • 출력을 구분하기 위해 줄 끝 문자(EOL)를 추가했습니다.

이 수정된 코드를 사용하면 텍스트 파일의 전체 내용을 성공적으로 읽고 마지막 줄을 포함하여 표시됩니다.

위 내용은 내 PHP `while (!feof())` 루프가 불완전한 파일 출력을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿