【问题标题】:Create URLs from Database从数据库创建 URL
【发布时间】:2011-10-26 20:10:28
【问题描述】:

我正在尝试根据用户输入的信息创建干净的 URL。我的 .htaccess 文件中有这个。

RewriteRule ^[^/]+/$ /records.php [QSA,L]

这非常适合访问如下地址:example.com/blah/。我所做的是打印“blah”类别的所有记录或用户输入的任何其他记录(或我链接到的)。当用户输入并存储带有空格的类别时,问题就出现了。我想用空间保持类别的完整性,但我还需要创建类别的 URL 友好版本。我链接到这样的类别:

$nospace = str_replace(" ", "-", $row['category']) ; 
echo "<a href=/".$nospace."/>" . $nospace . "</a>";

当您到达目标 URL 时,问题就出现了。如果该类别有空格,但我用 - 链接到一个类别,我自然不会从该类别中得到任何东西。它不存在。

如何在类别名称中保留空格,但同时能够创建一个 URL 友好的类别名称并链接到它?

【问题讨论】:

    标签: url mod-rewrite replace


    【解决方案1】:

    php(这就是您正在使用的样子)支持urlencodeurldecode 您可以使用 url 编码类别构建链接,然后在另一端对它们进行 url 解码。 =)

    echo '<a href="/'.urlencode($row['category']).'">'.$row['category']."</a>";
    

    【讨论】:

    • 太好了!唯一的问题是 urlencode 在空格之间添加了 + 而不是 -。我该如何改变呢?
    • 好吧,如果你想要可靠的编码-解码,你应该让urlencode 去做。使用 hypens 是否必要?如果是这样,str_replace('+','-',urlencode($row['category'])) 编码,然后urldecode(str_replace('+','-',$_GET['category']))
    猜你喜欢
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2010-10-17
    相关资源
    最近更新 更多