代码如下 | 复制代码 |
<?php $dirname=@opendir("abc")or die("打开目录不成功<br>"); readdir($dirname)."<br>"; readdir($dirname)."<br>"; { } } ?> |
只能读出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>'; ?> 这个就可以方便的无限目录遍历了。 |
时间: 2024-11-06 03:46:33