以下のエディタでは、ディレクトリ、ディレクトリ、およびその中の他のファイルをトラバースする方法をいくつか紹介します。興味がある場合は、参照してください。
ディレクトリを走査する、またはディレクトリ内の指定されたタイプのファイルを走査する これは、すべての子供がプログラムを作成するときに必ず使用するものです。 PHP 自体にも非常に便利な機能が多数用意されており、それらを正しく使用すれば間違いはありません。
以下に私個人の学習プロセスをまとめます。これから PHP を学びたいと思っている子供たちに役立つことを願っています。
//この関数は、指定されたディレクトリ(サブディレクトリを含む)内のすべてのファイルを一覧表示できます
コードは次のとおりです |
コードをコピー |
関数 getfiles($path){
foreach(scandir($path) as $afile)
{
if($afile=='.'||$afile=='..') 続行します。
if(is_dir($path.'/'.$afile))
{
getfiles($path.'/'.$afile);
} その他 {
echo $path.'/'.$afile.' ';
}
}
} //簡単なデモ。現在のディレクトリ内のすべてのファイルをリストします
getfiles(__DIR__);
| scandir() は、指定されたディレクトリ内のすべてのファイルとディレクトリの配列を返します。PHP では、glob() には 2 つのパラメーターがあります。それについては後で話します。 glob() を使用してディレクトリをトラバースする方法を直接見てみましょう。
//
// glob() によって返された内容から「.」と「..」が除外されていることがわかります。* はディレクトリ内のすべてのファイルを走査することを意味します。同様に、*.txt に変更すると、ディレクトリ内のすべての txt ファイルがスキャンされます。とても便利ではないでしょうか?袁芳氏によると、その便利さにはそれだけではなく、大きな秘密が隠されているそうです。それについては後ほどお話しますので、ご興味がございましたらメッセージを残していただけますようお願いいたします。
コードは次のとおりです
コードをコピー
|
|
関数 getfiles($path){
foreach(glob($path) as $afile){
if(is_dir($afile))
{ getfiles($afile.'/*') } else { echo $afile.' }
}
} //簡単なデモ。現在のディレクトリ内のすべてのファイルをリストします
getfiles(__DIR__);0
*.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){...}
ディレクトリ内の指定されたすべてのファイルタイプを走査する完全な機能については、次の例を参照してください
フォルダーとサブフォルダー内のすべてのファイルをスキャンします
コードは次のとおりです |
コードをコピー |
function traverse($path = '.') {
$current_dir = opendir($path);
。
$sub_dir = $path 。
If($file == '.' || $file == '..') {
続けます;
echo 'ディレクトリ' . ': ';
トラバース($sub_dir);
echo 'ディレクトリ内のファイル ' . ' ';
}
}
}
トラバース('xxtt');
?>
よく使用される例
|
コードは次のとおりです
コードをコピー
|
$dir="E:/video" // ここに他のパスを入力します;
//PHP はフォルダー内のすべてのファイルをスキャンします
$handle=opendir($dir.".")
echo "ファイル: ";
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
echo $file; // 出力ファイル名
}
}
クローズ済み($ハンドル)
?>
このコードを使用してすべてのファイルを走査し、すべてのファイル名を配列として保存しました。
コードは次のとおりです |
コードをコピー |
$s=explode("/n",trim(`dir/b e://video`));
print_r($s);
?>
$dir="E:/video" // ここに他のパスを入力します ;
//PHP はフォルダー内のすべてのファイルをスキャンします
$handle=opendir($dir.".")
echo "ファイル: ";
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
$file=$file.',' //出力ファイル名 ;
$file=explode(',',$file);
}
}
print_r($file);//出力は配列です
クローズ済み($ハンドル)
?>
$dir="."; // ここに他のパスを入力します
//PHP はフォルダー内のすべてのファイルをスキャンします
$handle=opendir($dir.".")
echo "ファイル: ";
//ファイル名を格納する配列を定義します
$array_file = array();
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
$array_file[] = $file //出力ファイル名 ;
}
}
Closedir($handle);
print_r("");
print_r($array_file);
print_r("");
?>
|
|
http://www.bkjia.com/PHPjc/632763.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632763.html技術記事以下のエディタでは、ディレクトリ、ディレクトリ、およびその中の他のファイルを移動する方法をいくつか紹介しますので、ご興味があれば参照してください。 ディレクトリを走査します...
|