使用php scandir函数遍历文件夹目录和所有文件
<?php $dir = "."; //当前目录 list_file($dir); function list_file($dir){ $list = scandir($dir); // 得到该文件下的所有文件和文件夹 foreach($list as $file){//遍历 $file_location=$dir."/".$file;//生成路径 if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹 echo "------------------------sign in $file_location------------------"; list_file($file_location); //继续遍历 } echo "<br/>"; } } ?> |
以前的写法:
<?php /** * Get an array that represents directory tree * @param string $directory Directory path * @param bool $recursive Include sub directories * @param bool $listDirs Include directories on listing * @param bool $listFiles Include files on listing * @param regex $exclude Exclude paths that matches this regex */ function directoryToArray($directory, $recursive = true, $listDirs = false, $listFiles = true, $exclude = '') { $arrayItems = array(); $skipByExclude = false; $handle = opendir($directory); if ($handle) { while (false !== ($file = readdir($handle))) { preg_match("/(^(([\.]){1,2})$|(\.(svn|git|md))|(Thumbs\.db|\.DS_STORE))$/iu", $file, $skip); if($exclude){ preg_match($exclude, $file, $skipByExclude); } if (!$skip && !$skipByExclude) { if (is_dir($directory. DIRECTORY_SEPARATOR . $file)) { if($recursive) { $arrayItems = array_merge($arrayItems, directoryToArray($directory. DIRECTORY_SEPARATOR . $file, $recursive, $listDirs, $listFiles, $exclude)); } if($listDirs){ $file = $directory . DIRECTORY_SEPARATOR . $file; $arrayItems[] = $file; } } else { if($listFiles){ $file = $directory . DIRECTORY_SEPARATOR . $file; $arrayItems[] = $file; } } } } closedir($handle); } return $arrayItems; } ?> |