以下のエディタでは、ディレクトリ、ディレクトリ、およびその中の他のファイルをトラバースする方法をいくつか紹介します。興味がある場合は、参照してください。
ディレクトリを走査する、またはディレクトリ内の指定されたタイプのファイルを走査する これは、すべての子供がプログラムを作成するときに必ず使用するものです。 PHP 自体にも非常に便利な機能が多数用意されており、それらを正しく使用すれば間違いはありません。
以下に私個人の学習プロセスをまとめます。これから PHP を学びたいと思っている子供たちに役立つことを願っています。
//この関数は、指定されたディレクトリ(サブディレクトリを含む)内のすべてのファイルを一覧表示できます
コードは次のとおりです | コードをコピー |
関数 getfiles($path){ if($afile=='.'||$afile=='..') 続行します。
if(is_dir($path.'/'.$afile))
| scandir() は、指定されたディレクトリ内のすべてのファイルとディレクトリの配列を返します。PHP では、glob() には 2 つのパラメーターがあります。それについては後で話します。 glob() を使用してディレクトリをトラバースする方法を直接見てみましょう。
// glob() によって返された内容から「.」と「..」が除外されていることがわかります。* はディレクトリ内のすべてのファイルを走査することを意味します。同様に、*.txt に変更すると、ディレクトリ内のすべての txt ファイルがスキャンされます。とても便利ではないでしょうか?袁芳氏によると、その便利さにはそれだけではなく、大きな秘密が隠されているそうです。それについては後ほどお話しますので、ご興味がございましたらメッセージを残していただけますようお願いいたします。
if(is_dir($afile))
{ getfiles($afile.'/*') } else { echo $afile.' *.txt を使用するとディレクトリ内のすべての txt ファイルが走査されるため、特定の形式のファイルを同時に走査したい場合はどうすればよいですか?何をするか?配列を使用することを考えた子供もいるでしょう。すぐに配列を書き出して、それを {*.txt,*.jpg,*.zip,...} に置き換えました。もちろん、プログラムが false を返したこともすぐに発見しました。そして何も得られませんでした。がっかりしないでください。これには、先ほど述べた 2 番目のオプションのパラメーターが含まれます。詳細については、PHP マニュアルを参照してください。ここでは詳しく説明しません。 GLOB_BRACE について。これは、{a,b,c,...} を展開して 'a'、'b'、または 'c',... に一致させるために使用されます。使用法は次のとおりです: foreach(glob($path.'/{*.txt,*.jpg,*.zip,...}', GLOB_BRACE) as $fileName){...} ディレクトリ内の指定されたすべてのファイルタイプを走査する完全な機能については、次の例を参照してください
|