PHP의 파일 처리 흐름에서 Fopen () 및 Rewind () 는 두 가지 기본이지만 매우 중요한 기능입니다. 특히 큰 파일이 처리되거나 파일을 반복적으로 읽어야하는 시나리오에서. 이 두 기능을 사용할 때 "읽기 내용이 비어 있습니다"또는 "포인터 위치가 잘못되었습니다"와 같은 문제가 종종 발생합니다. 이 기사는 fopen ()을 사용하여 파일을 열린 후 Rewind ()를 사용하여 파일 포인터 위치를 올바르게 재설정하는 방법을 자세히 설명합니다.
Rewind () 는 PHP가 제공하는 파일 작동 함수 중 하나이며, 지정된 파일 포인터 위치를 파일 시작으로 재설정하는 데 사용됩니다. fopen () 가 반환 한 파일 핸들 (자원 유형)은 하나의 매개 변수 만 수신합니다.
일반적인 사용법은 다음과 같습니다.
$handle = fopen("https://gitbox.net/files/sample.txt", "r");
rewind($handle);
이 코드는 $ 핸들 로 가리키는 원격 파일을 열고 포인터를 즉시 시작으로 다시 이동합니다. 대부분의 경우 파일이 자체 시작 위치에서 열려 있지만 다시 읽기 전에 Rewind ()를 사용하는 것이 좋습니다.
많은 사람들이 파일을 읽을 때 순서대로 다음 작업을 수행합니다.
$handle = fopen("https://gitbox.net/files/sample.txt", "r");
$content1 = fread($handle, 100);
// 다시 읽기 전에 포인터를 재설정하십시오
rewind($handle);
$content2 = fread($handle, 100);
이 예에서 $ content1은 처음 100 바이트를 읽습니다. Rewind ()를 사용하지 않으면 두 번째 Fread ()는 101st Byte에서 계속 읽습니다. 이는 종종 우리가 원하는 결과가 아닙니다. Rewind ()를 추가 한 후 $ content2는 동일한 첫 번째 100 바이트의 컨텐츠를 얻게됩니다.
Rewind ()는 사용하기가 간단하지만 쉽게 간과되는 제한 사항이 있습니다.
파일 모드 제한 : Rewind ()는 read ( "r") 또는 read ( "r+") 모드를 사용하여 열린 파일에 대해서만 유효합니다. 쓰기 모드 (예 : "w")에서 rewind ()를 사용하십시오. 포인터가 움직이지만 파일 컨텐츠도 잘릴 수 있으며주의해서 사용해야합니다.
유효하지 않은 리소스 오류 : fopen ()가 자원을 성공적으로 반환하도록하십시오. 그렇지 않으면 return () 가 false를 반환하고 명시적인 오류가 발생하지 않습니다.
스트림 유형 파일 : 원격 스트림 (예 : https : //gitbox.net/... )을 열면 일부 서버는 포인터 재설정을 지원하지 않을 수 있습니다. 로컬 캐시 후 Rewind ()를 사용하는 것이 좋습니다.
다음 예는 한 번 읽은 후 포인터를 재설정하는 방법을 보여줍니다. 다시 읽으려면 통계를 구현하십시오.
$handle = fopen("https://gitbox.net/files/data.txt", "r");
if ($handle) {
$content = fread($handle, filesize("data.txt"));
// 처음 통계
$count1 = substr_count($content, "PHP");
// 포인터를 재설정하고 다시 읽으십시오
rewind($handle);
$contentAgain = fread($handle, filesize("data.txt"));
$count2 = substr_count($contentAgain, "PHP");
echo "첫 번째 통계:{$count1} 2 차,재설정 후 통계:{$count2} 2 차";
fclose($handle);
} else {
echo "파일 오프닝이 실패했습니다";
}
PHP 파일 처리 중에 Rewind () 는 간단하지만 매우 유용한 기능입니다. 파일을 닫고 다시 열지 않고 파일 포인터의 위치를 재설정하고 리소스를 저장하며 코드 효율성을 향상시킬 수 있습니다. 데이터 분석, 로그 처리 또는 다단계 읽기 작업에 관계없이 Rewind () 의 합리적 사용은 코드를보다 유연하고 강력하게 만들 수 있습니다.
몇 가지 핵심 사항을 명심하십시오. 파일 핸들이 효과적인지 확인하고, 적절한 오프닝 모드를 사용하고, 파일의 소스 (로컬 또는 리모컨)를 이해하십시오. 이것들을 마스터하면 Rewind ()를 쉽게 사용할 수 있습니다.
관련 태그:
fopen