检查是否存在以给定字符串开头的文件

时间:2012-01-21 00:41:28

标签: php apache file exists

给出一个名字

$path = 'articles/001.html';

我可以检查这样的文件是否存在:

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

但是,我正在考虑通过向其添加文章的标题来修改文章的URL。因此,如果用户请求此URL:

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

我想将网址转换为:

"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页面,如果是,我想检索其文件名。

可以这样做吗?这是一个好方法吗?欢迎提出建议。

1 个答案:

答案 0 :(得分:10)

glob可以根据您的模式匹配文件:

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

它会返回一个包含所有匹配文件的数组。