PHPは1つのフォルダの下のすべてのファイルとサブフォルダを遍歴できる関数を書きます.

4167 ワード

狭義には、ディレクトリは1つのフォルダに相当し、ファイルとフォルダが含まれている.その中のフォルダはまた1つのディレクトリであるため、再帰操作に関連する.例えば、Dディスクの下にフォルダtestscandirを構築し、testscandirにはファイルa.php、b.phpとフォルダcがあり、フォルダcにはc 1がある.txtとc 2.doc
($dir)
{
     $files = array();
     if( $handle=opendir($dir) ){                             //$handle=Resource id #3

        while( ($file = readdir($handle)) !== false ){       //echo $file;echo "
"
; //$file . .. a.php b.php c if( $file != ".." && $file != "." ){ if( is_dir($dir . "/" . $file) ){ // c $files[$file] = xf_scandir($dir . "/" . $file); }else{ // a.php,b.php $files[] = $file; //var_dump($file);echo "
"
;// a.php b.php } } } closedir($handle); return $files; } } $re=xf_scandir('D:\testscandir'); var_dump($re); /* array (size=3) 0 => string 'a.php' (length=5) 1 => string 'b.php' (length=5) 'c' => array (size=2) 0 => string 'c1.txt' (length=6) 1 => string 'c2.doc' (length=6) */ ?>

opendir(path,context);//ディレクトリハンドルpathを開くには必須です.開くディレクトリのパスを指定します.contextはオプションです.ディレクトリハンドルの環境を指定します.contextは、ディレクトリストリームの動作を変更できるオプションです.戻り値:成功すると、ディレクトリハンドルリソースが返されます.失敗するとFALSEに戻ります.パスが正当なディレクトリでない場合、またはライセンス制限またはファイルシステムエラーによるディレクトリが開かない場合、E_を放出します.WARNINGレベルのエラー.関数名の前に'@'を追加することでopendir()のエラー出力を非表示にできます.
readdir(dir_handle);//ディレクトリ内の次のファイルのファイル名dirを返します.handleはオプションです.Opendir()で開くディレクトリハンドルリソースを指定します.パラメータが指定されていない場合は、opendir()で開いた最後のリンクを使用します.戻り値:成功するとエントリ名(ファイル名)が返され、失敗するとFALSEが返されます.
bool is_dir(string$filename)ファイル名が存在し、ディレクトリである場合、TRUEに戻る.filenameが相対パスである場合は、現在の作業ディレクトリに従って相対パスを確認します.
scandir(directory,sorting_order,context);//指定したディレクトリ内のファイルとディレクトリの配列directoryを返すには必須です.スキャンするディレクトリを指定します.sorting_orderはオプションです.並び順を決める.デフォルトは0で、アルファベット昇順で並べ替えられています.SCANDIRに設定されている場合SORT_DESCENDINGまたは1は、アルファベット降順で並べられていることを示します.SCANDIRに設定されている場合SORT_NONEは、整列していない結果を返します.contextはオプションです.ディレクトリハンドルの環境を指定します.contextは、ディレクトリストリームの動作を変更できるオプションです.戻り値:成功すると、ファイルとディレクトリの配列が返されます.失敗するとFALSEに戻ります.ディレクトリがディレクトリでない場合は、E_を放出します.WARNINGレベルのエラー.