2011-02-04 87 views
2

我curently嘗試使用$ _GET 所以當用戶複製結果http://localhost/search?q=iphone%204PHP替換%20

如何replce%20使用+的地址鏈接以及在同一時間,當查詢,使我的系統中的搜索在sql中,它會搜索'iphone 4'而不是'iphone + 4'。

有什麼想法嗎?

感謝

+0

您是使用表單還是鏈接 – 2011-02-04 06:54:48

回答

5

使用urlencode編碼。解碼將自動進行,您只需要讀取$_GET中的值即可。

+0

+1 $ _GET,我認爲pamella可能會遺漏一些東西 – 2011-02-04 06:56:43

6

若要+

$url = str_replace("%20", "+", $url); 

替代20%要改變加入空間,爲您的查詢:

$url = urldecode($url); 
+0

`%20`和`+`無論如何都映射到`urldecode()`後的空格,所以第一步就不必要了。 – BoltClock 2011-02-04 06:53:52

2

使用「%2B」編碼您的「+」。 或使用rawurldecode代替urldecode。如果這不是您所需要的,請提供一些代碼,以便我可以更具體。

1

你並不需要,如果你只需要使用$_GET陣列將其解碼:http://ca.php.net/manual/en/reserved.variables.get.php

如果你使用你所提到的鏈接,就可以使用echo $_GET['q']將導致iphone 4訪問查詢,那麼你可以使用explode(' ', $_GET['q'])這將導致array('iphone', '4')