0

コーディングを学ぶサイトと検索サイトを作っています。検索は$qです。

$q = ucwords(mysql_real_escape_string(trim($_REQUEST['q'])));

次に、ユーザーが検索する可能性のある他の単語へのリンクを配置しようとしています。残念ながら、単語が「例と別の例」の場合、$qそれは「例」のみであり、残りは省略されています。URLでは、これは機能します(何も除外されていないため)example+%26+another+example です が、これは機能しません Example%20&%20Another Example 。

str_replace を使用してすべてを置き換えようとしました&amp%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("&amp;", "%26", $row['subcat']);
while($row = mysql_fetch_array($result))
{
    echo "<a href='search.php?q=". $subcaturl ."'/>" . $row['subcat'] ."</a>";
    echo "<br />";
}
4

3 に答える 3

2

urlencode を試してください:

$subcaturl = urlencode($row['subcat']);
于 2012-07-23T16:30:20.447 に答える
1

urlencode / urldecode を見てください - これはこの問題に役立ちます。

于 2012-07-23T16:29:30.230 に答える
0

PHP は、'&' を新しいパラメーターの先頭として扱います。「&」を q 文字列の一部として取得するには、ユーザーが送信したデータを URL 文字列に配置する前に「&」をエスケープする必要があります。

例としてこれを行うことができます:

str_replace ('&", "-", $row['subcat']);

また、URLのエンコードとデコードを試すこともできます

urlencode($row['subcat']);
urldecode($row['subcat']);
于 2012-07-23T16:33:56.130 に答える