2010-05-04 73 views
1

我目前正在嘗試開發一種方法來概述我創建並在過去幾年(合法)下載的所有不同Web模板。我認爲像WordPress這樣的顯示方式是用一個小的預覽窗口預覽它的模板,顯示具體樣式和一切的具體文件。PHP - 遍歷文件夾和顯示HTML內容

如何將它們分成行和列並在預覽和分頁等方式下創建Ajax模態窗口?

我相信我可以管理,但它是關於遍歷幾個文件夾然後找到所有index.htmindex.html頁面並顯示它們的概念。

我沒有在PHP目錄和唯一的引用和代碼樹樁我發現到目前爲止僅僅是列出所有的文件在某個目錄一樣,它所包含的工作非常多。

是否有腳本,函數,片段或只是一些信息來創建這樣的(可能很簡單)預覽功能?

+1

如果你能找到的代碼示例來遍歷目錄,並列出其內容聽起來像你對我錯過是過濾它只是HTML文件的唯一作品。它在哪裏被卡住了? – 2010-05-04 21:47:08

+6

['glob('* .html')'](http://php.net/glob) – Matt 2010-05-04 21:48:43

回答

1

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 chdirreaddir也許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方法調用你可以在裏面做。這裏有一些可能的變化。