2012-05-29 67 views
0

我意識到我的搜索存在一個非常明顯的問題,但不知道如何解決它。說有人搜索「你好」,那麼當然會在URL中出現類似於?s = Hello +的內容。

但是,我怎麼與人打交道尋找的東西,像「你好&這樣」?瀏覽器會將第二個查詢讀爲?s = Hello + & +,這樣就可以停止搜索變量「Hello」。我有與英鎊符號相同的問題。如果某人用英鎊符號搜索某些內容,則會將其添加爲網址片段,而不是搜索查詢的一部分。

我似乎無法找到如何處理這些信息,任何人都可以給我個忙嗎?

+0

使用['urlencode()'](http://php.net/urlencode)輸出URL參數。這是瀏覽器對錶單字段所做的事情。 – mario

回答

3

這就是編碼和轉義的地方。有關php,請參見url encode

然而,由於您的問題的性質,我想你,而找JS功能:

Encode URL in JavaScript?

+0

我同意他需要在JavaScript方面而不是在服務器端進行此操作。 –

+0

不一定。使用帶有action =「get」的表單會自動執行此操作,否則在執行此服務器端或客戶端操作之間沒有實際區別,但您應該考慮如果用戶使用Chrome的開發人員工具更改源代碼會發生什麼情況例如,或者乾脆停用JS? – casraf

+0

@OhMrBigshot當使用表單提交時,瀏覽器負責編碼。但是由於操作遇到了問題,我假設它是因爲他的JS。 –

1

搜索&不會打破你的搜索。如果您使用GET表單進行搜索,則&將自動更改爲%26。其他符號也一樣。

用於PHP的urlencode()手動轉義或JS的簡單查找/替換(或某些函數在網上旋轉)應該做的傻瓜式的技巧。