0

我意识到我的搜索存在一个非常明显的问题,但不知道如何解决它。假设有人搜索“Hello there”,它当然会在 URL 中出现类似 ?s=Hello+there 的内容。

但是,我该如何处理搜索“Hello & such”之类的内容的人?浏览器会将第二个查询读取为 ?s=Hello++&+such,这使得它在“Hello”处停止搜索变量。我对磅符号有同样的问题。如果有人搜索带有井号符号的东西,它会被添加,就好像它是一个 URL 片段,而不是搜索查询的一部分。

我似乎找不到有关如何处理此问题的信息,有人可以帮我吗?

4

2 回答 2

3

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

但是,由于您的问题的性质,我认为您宁愿寻找 js 功能:

在 JavaScript 中编码 URL?

于 2012-05-29T01:17:48.783 回答
1

搜索&不会中断您的搜索。如果您使用 GET 表单进行搜索,&则会自动更改为%26. 其他符号也一样。

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

于 2012-05-29T01:18:51.420 回答