現在の位置: ホーム> 最新記事一覧> 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">// ディレクトリの先頭に戻ります,2番目のトラバーサルを実行します(必要に応じて)</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">// 2番目のトラバーサル:打印所有書類名,デモの使用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()を複数回呼び出しないようにします。
  • 複雑なロジックを組み合わせると、最初にフィルタリングを通過してから、ディレクトリヘッダーに戻り、2回目の操作を実行できます。

5。注意すべきこと
  • ディレクトリハンドルは、使用後に閉じて閉じている()を呼び出す必要があります。
  • 一部のシステムまたはPHP環境では、ディレクトリコンテンツの変更が一貫していない場合のrewinddir()の使用。ディレクトリを変更した後、ディレクトリハンドルを再開することをお勧めします。

要約します

RewindDir()ReadDir()の合理的な協力により、PHPプログラムは、ディレクトリのコンテンツを効率的かつ柔軟に読み取り、リソースの消費を削減し、コードの保守性とパフォーマンスを向上させることができます。