从 _GET 美元起移除/隐藏零件但仍然捕获全部价值的更好方法


Better way to remove/hide parts from $_GET but still capture full value

我正在做一个平面文件博客风格的脚本项目,文本文件名的布局如下:

05--im-a-title-and-may-c0ntain-lett3r5-and-numb3rs--14-12-2014

我用explode() --分成3个部分进行索引列表

  • $id
  • $title
  • $date

链接到正在$title的单个页面

目前的单页代码是:

$search = $dir . "*" . clean($_GET['title']) . "*" . '.txt';
$files = glob($search);
$getfile  = $files[0];
echo file_get_contents($getfile);

如您所见,我正在使用globe()并且通配符将$_GET与文件名匹配以获取文件内容并从 url 中删除/隐藏 id 和日期部分,这工作正常,但是一旦文件开始堆积,它也将开始变得非常服务器密集型,不得不搜索许多文件,所以想在它开始之前解决这个问题,所以寻找更好的从$_GET仍然找到正确文件的情况下删除/隐藏部分的方法。

更新:这样做的目的是使单页网址更清晰domain.com/i-am-a-title而不是domain.com/05--im-a-title--14-12-2014

更新 2: RewriteRule ^([a-zA-Z0-9_-]+)$ single.php?title=$1 [L]

为什么要搜索文件?直接获取确切的文件。