2014-07-21 34 views
0

我在搜索頁面上設置分頁並試圖對每個數字進行搜索查詢。htmlspecialchars + htmlentities不起作用

href="?s=search+term" 

問題是,當用戶輸入特殊字符(如#)時,它會註釋掉它後面的任何內容。

通常我使用htmlentities將它變成%23,但它在這種情況下不起作用。 請記住,它searchs它的第一次看起來像這樣的搜索查詢

href="?s=%23+search+term" 

,並在點擊一個頁碼,然後搜索查詢看起來像這樣

href="?s=#%20search%20term" 

當執行其中, PHP,被註釋掉。任何想法如何繞過這個?

回答

3

您需要在搜索字詞上使用urlencode()以正確編碼它以便在網址中使用。

http://php.net/manual/en/function.urlencode.php

作爲一個更好的選擇,您可以使用http_build_query()可以生成一個數組整個查詢字符串:

$params = [ 
    's' => "my search term", 
    'p' => "3" 
]; 
echo http_build_query($params); // will echo a properly encoded querystring