2014-07-21 37 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