<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>()
rewinddir()會將目錄句柄指針重新指向目錄的開頭。也就是說,當你已經讀取到目錄末尾,但想重新從頭開始遍歷時,可以調用此函數。
在實際應用中,有時需要多次讀取同一個目錄的內容,例如先篩選符合條件的文件,再對其做進一步處理。這時,使用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>);
通過rewinddir()和readdir()的合理配合,PHP程序可以高效且靈活地讀取目錄內容,減少資源消耗,提高代碼的可維護性和性能。