带有URL敏感符号的$ _GET变量? (比如搜索)

时间:2012-05-29 01:11:52

标签: php url search get

我的搜索实现了一个非常明显的问题,但不知道如何修复它。如果有人搜索“Hello there”,那当然会出现类似的内容?s = Hello +在URL中。

但是,我如何处理搜索“Hello& such”之类的人?浏览器将读取第二个查询为?s = Hello +& +,这使得它停止搜索变量“Hello”。我对英镑符号有同样的问题。如果某人使用井号符号搜索某些内容,则会将其添加为URL片段,而不是搜索查询的一部分。

我似乎无法找到有关如何处理此问题的信息,任何人都可以帮我一把吗?

2 个答案:

答案 0 :(得分:3)

这是编码和转义发挥作用的地方。对于php,请参阅url encode

然而,由于您的问题的性质,我认为您正在寻找js功能:

Encode URL in JavaScript?

答案 1 :(得分:1)

搜索&不会破坏您的搜索。如果您使用GET表单进行搜索,则&会自动更改为%26。其他符号相同。

使用urlencode()为PHP手动转义或简单查找/替换JS(或某些在线旋转的函数)应该可以做到万无一失。