【问题标题】:Better way to remove/hide parts from $_GET but still capture full value从 $_GET 中删除/隐藏部分的更好方法,但仍能获取全部价值
【发布时间】:2015-02-01 16:14:02
【问题描述】:

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

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 的部分,但仍然找到正确的文件。

更新: 这样做的目的是使单页 url 更干净 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]

【问题讨论】:

    标签: php get flat-file


    【解决方案1】:

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

    【讨论】:

    • 这样 url 更干净 /i-am-a-title 而不是 /05--im-a-title--14-12-2014 并且是我必须按需要工作的唯一选项。
    • 我认为你应该对单页网址进行更改..如:example.com/posts/5/14-12-2014/…@AnnaRiekic
    • 你的意思是$getfile = $_GET['title']; echo file_get_contents($getfile); 然后会显示不是我想要的全文文件名。
    • 不。发送所有需要的数据,如 single.php?id=5&date=14-12-2014&title=im-a-title 以及如果你想使用 htaccess 重写@AnnaRiekic
    • 这也不是我想要的我只想要domain.com/i-am-a-title我已经使用htaccess将添加到op
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多