-2
我正在构建一个论坛,其中包含您要查看的主题的标题。但如果它包含!那么它会抛出404错误。我知道ASCII字符!是%21,我认为urlencode()会改变!到%21但它没有。当我点击链接的网址仍然包含!这是打破了网址。有小费吗?感叹号在网址中
我正在构建一个论坛,其中包含您要查看的主题的标题。但如果它包含!那么它会抛出404错误。我知道ASCII字符!是%21,我认为urlencode()会改变!到%21但它没有。当我点击链接的网址仍然包含!这是打破了网址。有小费吗?感叹号在网址中
我建议你规范你想在url中使用的标题,以便使用起来安全并保持用户可读。
$normalizedTitle = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($title)), '-');
这将打开!TEST!/?TEST?
为test-test
,并ASF is absolutely awesome!
到asf-is-absolutely-awesome
。
urlencode应该可以工作,但你也可以尝试rawurlencode() – 2011-05-05 04:58:08
请发布你的代码。我只测试了php的['urlencode()'](http://www.php.net/manual/en/function.urlencode.php)函数,它的确将'!'编码为'%21'。你的代码还有其他一些事情要做。 – Asaph 2011-05-05 04:58:14
即时通讯使用这个: urlencode($ forum ['last_post_topic']); 在我的标记中。 $ forum ['last_post_topic']在数据库中看起来像 Asf太棒了! 但是当我点击链接的URL读取 ASF +是+绝对+真棒! so urlencode()取代空格,但不是感叹号 – 2011-05-05 05:14:58