ホームページ  >  記事  >  バックエンド開発  >  phpはディレクトリ内のすべてのファイルを読み取ります

phpはディレクトリ内のすべてのファイルを読み取ります

WBOY
WBOYオリジナル
2016-07-30 13:31:121643ブラウズ

/**
* 入力ディレクトリに含まれるすべてのディレクトリとファイルを取得します
* 連想配列として返します
* 著者: flynetcn
*/
function deepScanDir($dir)
{
$fileArr = array();
$dirArr = array();
$dir = rtrim($dir, '// ');
if(is_dir($dir)){
$dirHandle = opendir($dir);
while(false !== ($fileName = readdir($dirHandle))){
$subFile = $dir . DIRECTORY_SEPARATOR 。 $fileName;
if(is_file($subFile)){
$fileArr[] = $subFile;
} elseif (is_dir($subFile) && str_replace('.', '', $fileName)!=''){
$dirArr[] = $subFile;
$arr = deepScanDir($subFile);
$dirArr = array_merge($dirArr, $arr['dir']);
$fileArr = array_merge($fileArr, $arr[' file']);
}
}
Closedir($dirHandle);
}
return array('dir'=>$dirArr, 'file'=>$fileArr);
}
//例
$ディレクトリ= '/var/htdocs/w4/article';
$arr = deepScanDir($dir);
print_r($arr);
/**
* 入力ディレクトリに含まれるすべてのファイルを取得します
* 配列として返します
* 著者: flynetcn
*/
function get_dir_files($dir)
{
if ( is_file($dir)) {
return array($dir);
}
$files = array();
if (is_dir($dir) && ($dir_p = opendir($dir))) {
$ds = DIRECTORY_SEPARATOR;
while (($filename = readdir($dir_p)) !== false) {
if ($filename=='.' || $filename=='..') { continue; }
$filetype = filetype($dir.$ds.$filename);
if ($filetype == 'dir') {
$files = array_merge($files, get_dir_files($dir.$ds.$filename)) ;
} elseif ($filetype == 'file') {
$files[] = $dir.$ds.$filename;
}
}
Closedir($dir_p);
}
$files を返す;
}

以上、php の特定の項目の下にあるすべての文書を取得しました。これには、側面の内容も含まれます。PHP の教育に関心のある友人の助けになることを望みます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。