2012-01-21 35 views
2

一個名字檢查文件是否存在啓動與給定的字符串

$path = 'articles/001.html'; 

我可以檢查是否存在這樣的文件,像這樣:

if (file_exists($path)) { 
    // include it 
} else { 
    // redirect to articles index 
} 

不過,我在想修改的URL該文章通過向其添加文章的標題。因此,如果用戶請求這個網址:

"http://foo.com/articles/001" 

我想的URL轉換成這樣:

"http://foo.com/articles/001/the-title-of-the-article-here" 

現在,這當然意味着我必須存儲文章的標題(和所有其他文章)在某個地方。標題位於文章的<h1>元素中,但我懷疑爲了檢索標題而閱讀服務器上的文章(文件)是個不錯的主意。

所以,我還想着把標題中的文件名,如下所示:

"001-the-title-of-the-article-here.html" 

然後我可以從文件名提取出來,並把它添加到URL。但是,我不知道如何檢查articles目錄中是否存在這樣的文件 - 我所得到的是文章ID(本例中爲001)。

因此,基於ID,我想檢查在articles目錄內是否存在以該ID開頭的HTML頁面,如果是,我想檢索它的文件名。

可以這樣做嗎?這是一個好方法嗎?歡迎提出建議。

回答

10

glob可以根據你的模式匹配的文件:

$files = glob('articles/001-*.html'); 

它給你回的所有匹配的文件的數組。

+0

我該如何將ID連接到字符串?我從'$ _GET ['id']'得到ID。這個 - glob('articles /.$_ GET ['id'] .- *。html')' - 拋出一個錯誤。 –

+0

你只是混淆了你的報價。 「文章/」。 $ _GET ['id']。 「 - * html''。 – deceze

+0

啊這個 - glob('articles /'.$_ GET ['id']。' - *。html')'。得到它了。 –

相關問題