현재 위치: > 최신 기사 목록> [popen () 함수를 사용하여 파일 포인터 재설정을 실현하기 위해 PHP에서 rewind ()를 올바르게 사용하는 방법?

[popen () 함수를 사용하여 파일 포인터 재설정을 실현하기 위해 PHP에서 rewind ()를 올바르게 사용하는 방법?

gitbox 2025-06-30

PHP의 파일 처리 흐름에서 Fopen ()Rewind () 는 두 가지 기본이지만 매우 중요한 기능입니다. 특히 큰 파일이 처리되거나 파일을 반복적으로 읽어야하는 시나리오에서. 이 두 기능을 사용할 때 "읽기 내용이 비어 있습니다"또는 "포인터 위치가 잘못되었습니다"와 같은 문제가 종종 발생합니다. 이 기사는 fopen ()을 사용하여 파일을 열린 후 Rewind ()를 사용하여 파일 포인터 위치를 올바르게 재설정하는 방법을 자세히 설명합니다.

1. Rewind () 란 무엇입니까?

Rewind () 는 PHP가 제공하는 파일 작동 함수 중 하나이며, 지정된 파일 포인터 위치를 파일 시작으로 재설정하는 데 사용됩니다. fopen () 가 반환 한 파일 핸들 (자원 유형)은 하나의 매개 변수 만 수신합니다.

일반적인 사용법은 다음과 같습니다.

 $handle = fopen("https://gitbox.net/files/sample.txt", "r");
rewind($handle);

이 코드는 $ 핸들 로 가리키는 원격 파일을 열고 포인터를 즉시 시작으로 다시 이동합니다. 대부분의 경우 파일이 자체 시작 위치에서 열려 있지만 다시 읽기 전에 Rewind ()를 사용하는 것이 좋습니다.

2. 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 바이트의 컨텐츠를 얻게됩니다.

3. Rewind ()의 제한 및 예방 조치

Rewind ()는 사용하기가 간단하지만 쉽게 간과되는 제한 사항이 있습니다.

  • 파일 모드 제한 : Rewind ()는 read ( "r") 또는 read ( "r+") 모드를 사용하여 열린 파일에 대해서만 유효합니다. 쓰기 모드 (예 : "w")에서 rewind ()를 사용하십시오. 포인터가 움직이지만 파일 컨텐츠도 잘릴 수 있으며주의해서 사용해야합니다.

  • 유효하지 않은 리소스 오류 : fopen ()가 자원을 성공적으로 반환하도록하십시오. 그렇지 않으면 return ()false를 반환하고 명시적인 오류가 발생하지 않습니다.

  • 스트림 유형 파일 : 원격 스트림 (예 : https : //gitbox.net/... )을 열면 일부 서버는 포인터 재설정을 지원하지 않을 수 있습니다. 로컬 캐시 후 Rewind ()를 사용하는 것이 좋습니다.

4. 예 : 통계 문자열이 파일에 나타나는 횟수

다음 예는 한 번 읽은 후 포인터를 재설정하는 방법을 보여줍니다. 다시 읽으려면 통계를 구현하십시오.

 $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 "파일 오프닝이 실패했습니다";
}

5. 요약

PHP 파일 처리 중에 Rewind () 는 간단하지만 매우 유용한 기능입니다. 파일을 닫고 다시 열지 않고 파일 포인터의 위치를 ​​재설정하고 리소스를 저장하며 코드 효율성을 향상시킬 수 있습니다. 데이터 분석, 로그 처리 또는 다단계 읽기 작업에 관계없이 Rewind () 의 합리적 사용은 코드를보다 유연하고 강력하게 만들 수 있습니다.

몇 가지 핵심 사항을 명심하십시오. 파일 핸들이 효과적인지 확인하고, 적절한 오프닝 모드를 사용하고, 파일의 소스 (로컬 또는 리모컨)를 이해하십시오. 이것들을 마스터하면 Rewind ()를 쉽게 사용할 수 있습니다.