2017-02-16 29 views
0

我想在根目录下的目录中找到所有的html文件,我有一个所有目录中的数组,并且我试图通过数组中的每个目录循环查找文件并创建一个列表,但它不工作,有什么想法?php目录中的html文件

$dirs = glob("/Root_directory*", GLOB_ONLYDIR); 

foreach($dirs as $dir) { 
    $phpfiles = glob($dir . "*.html"); 

    foreach($phpfiles as $phpfile) { 
     echo "<a href=$phpfile>".basename($phpfile)."</a>"; 
    } 
} 

我也想尽了办法建议here使用递归,这给了一个空数组

$Directory = new RecursiveDirectoryIterator('path/to/project/'); 
$Iterator = new RecursiveIteratorIterator($Directory); 
$Regex = new RegexIterator($Iterator, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH); 
+2

“它不工作”不是一个非常明显的问题。你能解释一下你期望你的代码做什么以及它做了什么吗? –

+0

我期待它能够在主目录内的每个目录中生成所有html文件的超链接,但是当php代码运行时它不会产生任何内容 –

+0

此外,对于这类问题,您应该查看递归编程。 https://en.wikipedia.org/wiki/Recursion_(computer_science) – Twinfriends

回答

0

这是很多摆弄之后,工程的递归方法。

$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path),  RecursiveIteratorIterator::SELF_FIRST); 
$Regex = new RegexIterator($objects, '/^.+\.html$/i', RecursiveRegexIterator::GET_MATCH); 
foreach($Regex as $name => $Rege){ 
echo "<a href=$name>".$name."</a> \n"; 
}