>백엔드 개발 >PHP 튜토리얼 >파일 읽기 PHP에서 파일을 읽는 올바른 방법

파일 읽기 PHP에서 파일을 읽는 올바른 방법

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-07-29 08:39:47914검색

PHP와 같은 최신 프로그래밍 언어로 작업하는 즐거움 중 하나는 사용 가능한 옵션이 엄청나게 많다는 것입니다. PHP는 특히 파일 처리와 관련하여 "한 가지 이상의 방법이 있습니다"라는 Perl의 모토를 쉽게 이겼습니다. 하지만 사용할 수 있는 옵션이 너무 많아서 작업에 가장 적합한 도구는 무엇입니까? 물론 실제 답변은 파일 구문 분석 목표에 따라 다르므로 시간을 들여 모든 옵션을 살펴보는 것이 좋습니다.
맨 위로
전통적인 fopen 방법
fopen 방법은 아마도 이전 C 및 C 프로그래머에게 가장 친숙할 것입니다. 왜냐하면 이러한 언어를 사용해 본 적이 있다면 어느 정도 친숙할 것이기 때문입니다. 도구 수년 동안. 두 방법 중 하나를 사용하면 목록 1에 표시된 대로 fopen(데이터를 읽는 데 사용되는 함수)을 사용하는 표준 방법으로 파일을 연 다음 fclose를 사용하여 닫습니다.
목록 1. fgets를 사용하여 파일 열기 및 읽기
$file_handle = fopen("myfile", "r")
while (!feof($file_handle)) {
$line = fgets ( $file_handle);
echo $line;
}
fclose($file_handle);
수년간의 프로그래밍 경험을 가진 대부분의 프로그래머는 이러한 기능에 대해 잘 알고 있습니다. 다음 단계를 효과적으로 수행하세요.
파일을 엽니다. $file_handle은 파일 자체에 대한 참조를 저장합니다.
파일의 끝에 도달했는지 확인하세요.
파일 끝에 도달할 때까지 계속해서 파일을 읽고, 읽은 대로 각 줄을 인쇄합니다.
파일을 닫습니다.
이러한 단계를 염두에 두고 여기에 사용된 각 파일 기능을 검토하겠습니다.
fopen
fopen 함수는 파일에 대한 연결을 생성합니다. fopen은 파일을 여는 것 외에도 URL도 열 수 있기 때문에 "연결 만들기"라고 말합니다. $fh = fopen("http://127.0.0.1/", "r")
이 줄 코드 그러면 위 페이지에 대한 연결이 생성되어 로컬 파일처럼 읽을 수 있게 됩니다.
참고: fopen에 사용된 "r"은 파일이 읽기 전용으로 열렸음을 나타냅니다. 파일에 데이터를 쓰는 것은 이 기사의 범위를 벗어나므로 다른 모든 옵션을 나열하지는 않겠습니다. 그러나 크로스 플랫폼 호환성을 위해 바이너리 파일에서 읽는 경우 "r"을 "rb"로 변경해야 합니다. 나중에 이에 대한 예를 볼 수 있습니다.
feof
feof 명령은 파일 끝에 도달했는지 여부를 감지하고 True 또는 False를 반환합니다. 목록 1의 루프는 "myfile" 파일의 끝에 도달할 때까지 계속됩니다. 참고: feof는 URL을 읽는 중이고 읽을 데이터가 더 이상 없기 때문에 소켓 시간이 초과되는 경우에도 False를 반환합니다.
fclose
목록 1의 끝으로 건너뛰면 fclose는 fopen과 반대되는 작업을 수행합니다. 즉, 파일이나 URL에 대한 연결을 닫습니다. 이 함수를 실행한 후에는 더 이상 파일이나 소켓에서 어떤 정보도 읽을 수 없습니다.
fgets
목록 1에서 몇 줄 뒤로 이동하면 파일 처리의 핵심, 즉 실제로 파일을 읽는 단계로 넘어갑니다. fgets 함수는 첫 번째 예에서 선택한 무기입니다. 파일에서 데이터 행을 추출하여 문자열로 반환합니다. 그런 다음 데이터를 인쇄하거나 조작할 수 있습니다. 목록 1의 예에서는 전체 파일을 제대로 인쇄합니다.
처리되는 데이터 덩어리의 크기를 제한하기로 결정한 경우 fgets에 매개변수를 추가하여 최대 행 길이를 제한할 수 있습니다. 예를 들어 다음 코드를 사용하여 줄 길이를 80자로 제한합니다. $string = fgets($file_handle, 81)
"
파일 크기가 8KB 이하라고 가정하면 다음 코드는 전체 파일을 문자열로 읽어야 합니다. $fh = fopen("myfile", "rb");
$data = fread($fh, filesize("myfile"))
fclose($fh)
이 값보다 크면 루프를 사용하여 나머지를 읽을 수만 있습니다.
fscanf
문자열 처리로 돌아가서, fscanf는 전통적인 C 파일 라이브러리 기능도 따릅니다. 익숙하지 않다면 fscanf는 파일의 필드 데이터를 변수로 읽어옵니다. list ($field1, $field2, $field3) = fscanf($fh, "%s %s %s")
이 함수에서 사용하는 형식 문자열은 여러 곳(예: PHP.net)에 설명되어 있습니다. 그래서 여기서는 자세히 다루지 않겠습니다. 문자열 형식 지정은 매우 유연합니다. 모든 필드가 함수의 반환 값에 배치된다는 점은 주목할 가치가 있습니다. (C에서는 모두 인수로 전달됩니다.)
fgetss
fgetss 함수는 기존 파일 함수와 다르며 PHP의 성능을 더 잘 이해할 수 있도록 해줍니다. 이 함수는 fgets 함수와 유사하게 작동하지만 발견된 모든 HTML 또는 PHP 태그를 제거하고 일반 텍스트만 남깁니다. 아래 표시된 HTML 파일을 봅니다.
목록 2. 샘플 HTML 파일

내 제목 p>"당신에게 고통을 줄 사람은 아무도 없으니까"
라는 뜻을 이해한다면 밴드 America


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.