我正在製作網站以瞭解代碼並正在製作搜索網站。搜索是$q
。URL中的處理和字符
$q = ucwords(mysql_real_escape_string(trim($_REQUEST['q'])));
然後我試圖把一個鏈接到用戶可能想要搜索的其他單詞。不幸的是,如果一個單詞是「Example & Another Example」,$q
只是「Example」,剩下的部分被遺漏了。在這個網址中,這個工作原理(如沒有被遺漏)示例+%26 +另一個+示例 但這不起作用示例%20 &%20另一個示例 。
我試過用str_replace替換所有的&
與%26
,但它只是作了$q = null
。有什麼問題?
這裏是我的代碼:
echo "<hr /><span><strong>Refine Search</strong><br/><br/>";
$result = mysql_query("SELECT * FROM subcat WHERE catnumber='1' LIMIT 0,10");
$subcaturl = str_replace("&", "%26", $row['subcat']);
while($row = mysql_fetch_array($result))
{
echo "<a href='search.php?q=". $subcaturl ."'/>" . $row['subcat'] ."</a>";
echo "<br />";
}
強制性參考解碼URL使用[mysqli_ *](http://php.net /manual/en/mysqli.real-escape-string.php)命令而不是mysql。 – Rhys 2012-07-23 16:27:13
很好處理,Ryven,可能需要一個'PDO'條款:-) – Smandoli 2012-07-23 16:28:55