php读出目录下的所有目录及子目录下文件
一个利用php读出目录下的所有目录及子目录下文件的代码,很简单方便的第一个就是读取一级目录,后面可以无限目录读取,实例代码如下:
<?php
$dirname = @opendir("abc") or die("打开目录不成功<br>");
readdir($dirname) . "<br>";
readdir($dirname) . "<br>";
while (($filess = readdir($dirname)) != false) {
if (is_dir("abc/" . $filess)) {
echo "目录:" . $filess . "<br>";
} else {
echo "文件:" . $filess . "<br>";
}
}
closedir($dirname);
?>只能读出html文件名,读不出abc目录下的目录名,下面我们再看一实例,实例代码如下:
<?php
/*
* 递归获取指定路径下的所有文件或匹配指定正则的文件(不包括"."和".."),结果以数组形式返回
* @param string $dir
* @param string [$pattern]
* @return array
*/
function file_list($dir, $pattern = "") {
$arr = array();
$dir_handle = opendir($dir);
if ($dir_handle) {
// 这里必须严格比较,因为返回的文件名可能是"0"
while (($file = readdir($dir_handle)) !== false) {
if ($file === '.' || $file === '..') {
continue;
}
$tmp = realpath($dir . '/' . $file);
if (is_dir($tmp)) {
$retArr = file_list($tmp, $pattern);
if (!emptyempty($retArr)) {
$arr[] = $retArr;
}
} else {
if ($pattern === "" || preg_match($pattern, $tmp)) {
$arr[] = $tmp;
}
}
}
closedir($dir_handle);
}
return $arr;
}
// 列出网站根目录下所有以".php"扩展名(不区分大小写)结尾的文件
echo '<pre>';
print_r(file_list($_SERVER['DOCUMENT_ROOT'], "//.php$/i"));
echo '</pre>';
?>本文链接:http://www.phprm.com/wenjian/fs4125.html
收藏随意^^请保留教程地址.