glob('*.html')
將工作,如果他們都在一個目錄。
如果你想走路文件樹 - 在當前目錄和子目錄和子目錄的子目錄(ETC)檢查一切 - 那麼你有兩個選擇。
一個是使用unix find
命令與PHP系統調用的方法之一。喜歡的東西:
find <search_root_dir> -name "*.html" -print
will get you output that looks something like
search_root_dir/blah.html
search_root_dir/foo.html
search_root_dir/subdir/baz.html
search_root_dir/subdir/bah.html
...
Another thing you could do is write a recursive function that uses chdir
和readdir
也許scandir
,是這樣的:
function dir_walk($start_dir,$func) {
$entries = scandir($start_dir);
foreach($entries as $entry) {
if($entry == '.' || $entry == '..') {
/*skip these*/
} else if(is_dir($entry)) {
dir_walk($start_dir.'/'.$entry,$func);
} else $func($start_dir.'/'.$entry);
}
}
然後,寫另一個功能:
$html_files = array();
function record_html_files($filename) {
global $html_files;
if(strpos($filename,'*.html') === (strlen($filename) - 6))
$html_files[] = $filename;
}
,並調用它是這樣的:
dir_walk('/path/to/search/root','record_html_files');
或者,寫dir_walk以便接受ob ject方法調用你可以在裏面做。這裏有一些可能的變化。
如果你能找到的代碼示例來遍歷目錄,並列出其內容聽起來像你對我錯過是過濾它只是HTML文件的唯一作品。它在哪裏被卡住了? – 2010-05-04 21:47:08
['glob('* .html')'](http://php.net/glob) – Matt 2010-05-04 21:48:43