현재 위치: > 최신 기사 목록> PHP Rewinddir 및 ReadDir 함수를 사용하여 디렉토리 내용을 효율적으로 읽는 방법은 무엇입니까?

PHP Rewinddir 및 ReadDir 함수를 사용하여 디렉토리 내용을 효율적으로 읽는 방법은 무엇입니까?

gitbox 2025-08-04
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이것은 기사의 내용과 관련이 없습니다.PHP코드 예제,초기화를 배치 할 수 있습니다、구성 및 기타 내용</span></span><span>
</span><span><span class="hljs-comment">// 예를 들어,시간대를 설정하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h2>PHP rewinddir그리고readdir기능을 사용하여 디렉토리 내용을 효율적으로 읽는 방법?</h2>

<p>존재하다PHP가운데,디렉토리 내용을 작동 할 때,일반적으로 사용되는 기능에는 포함됩니다 <code></span><span><span class="hljs-title function_ invoke__">opendir</span></span><span>()

2. Rewinddir ()역할

Rewinddir ()는 디렉토리 핸들 포인터를 디렉토리의 시작으로 다시 포인트합니다. 즉, 디렉토리의 끝을 읽었을 때이 기능을 호출 할 수 있지만 처음부터 다시 횡단하려고합니다.

3. Rewinddir 및 Readdir를 함께 사용하는 방법

실제 애플리케이션에서는 조건을 충족하는 첫 번째 필터링 파일과 같은 동일한 디렉토리의 내용을 여러 번 읽은 다음 추가 처리해야합니다. 현재 rewinddir ()를 사용하면 opendir ()에 대한 반복 호출을 피하고 효율성을 향상시킬 수 있습니다.

 
</span><span><span class="hljs-variable">$dir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">opendir</span></span><span>(</span><span><span class="hljs-string">'/path/to/dir'</span></span><span>);

</span><span><span class="hljs-comment">// 첫 번째 횡단:모든 파일을 읽으십시오,모든 것을 찾으십시오.php문서</span></span><span>
</span><span><span class="hljs-variable">$phpFiles</span></span><span> = [];
</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">readdir</span></span><span>(</span><span><span class="hljs-variable">$dir</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">pathinfo</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, PATHINFO_EXTENSION) === </span><span><span class="hljs-string">'php'</span></span><span>) {
        </span><span><span class="hljs-variable">$phpFiles</span></span><span>[] = </span><span><span class="hljs-variable">$file</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// 디렉토리의 시작 부분으로 돌아갑니다,두 번째 트래버스를 수행하십시오(필요한 경우)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">rewinddir</span></span><span>(</span><span><span class="hljs-variable">$dir</span></span><span>);

</span><span><span class="hljs-comment">// 두 번째 횡단:打印所有문서名,데모 사용rewinddir</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">readdir</span></span><span>(</span><span><span class="hljs-variable">$dir</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"문서名: <span class="hljs-subst">$file</span></span></span><span>\n";
}

</span><span><span class="hljs-title function_ invoke__">closedir</span></span><span>(</span><span><span class="hljs-variable">$dir</span></span><span>);

4. Rewinddir를 사용하는 것이 더 효율적입니까?
  • 동일한 디렉토리를 여러 번 통과 해야하는 경우 시스템 리소스를 저장하기 위해 OpenDir ()ClosedIR ()를 여러 번 호출하지 마십시오.
  • 복잡한 로직을 결합 할 때 먼저 필터링을 가로지고 디렉토리 헤더로 돌아가서 두 번째 작업 라운드를 수행 할 수 있습니다.

5. 주목할만한 것들
  • 디렉토리 핸들은 사용 후 닫아야하며 CloseBir () 호출해야합니다.
  • 일부 시스템 또는 PHP 환경에서 디렉토리 컨텐츠 변경이 일치하지 않을 때 Rewinddir () 를 사용합니다. 디렉토리를 변경 한 후 디렉토리 핸들을 다시 열어야합니다.

요약

PHP 프로그램은 Rewinddir ()readdir () 의 합리적인 협력을 통해 디렉토리 컨텐츠를 효율적이고 유연하게 읽고 리소스 소비를 줄이며 코드 유지 관리 및 성능을 향상시킬 수 있습니다.