我正在构建一个论坛,其中包含您要查看的主题的标题。但如果它包含一个!然后它会抛出404错误。我知道ASCII字符!是%21,我假设urlencode()会改变!到%21但它没有。当我点击链接时,网址仍然包含!这打破了网址。有什么提示吗?
答案 0 :(得分:5)
我建议您将要在网址中使用的标题进行规范化,以便安全使用并让用户可以阅读。
$normalizedTitle = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($title)), '-');
这会将!TEST!/?TEST?
变为test-test
,将ASF is absolutely awesome!
变为asf-is-absolutely-awesome
。