0

在下面的代码中......

<td height="27" align="right" valign="middle"><a href="General.php?category=Social & Political" target="_parent">Social & Political</a></td>

在 General.php 页面中......

<input type='text' name='category' id='category' value='<?= $_GET['category']; ?>' maxlength="25"/>

这里的价值只取'社会',而不是'社会和政治'。如果我把它改成“社会政治”,那就完美了。这是为什么?

4

4 回答 4

4

&在 URI 和 HTML 中都有特殊的含义。在您放置它的查询字符串中,它的意思是“这个键/值对的结束和下一个键/值对的开始”。

urlencode在将字符串插入 URL 之前(立即)运行您的字符串。

htmlspecialchars在将字符串插入 HTML 之前(立即)运行您的字符串。

(urlencode 不应在字符串中留下任何 HTML 特殊字符,但在将其与 HTML 连接之前,通过 htmlspecialchars 推送所有“不知道是 HTML”的数据是一个好习惯)。

于 2012-09-07T06:18:56.177 回答
1

因为&是特殊字符。

使用 PHP 函数urlencode()urldecode()

于 2012-09-07T06:17:48.687 回答
0

为了补充以前的答案,这将起作用

a href="General.php?category=Social %26 政治"

%26 是字符 & 的 url 代码

于 2012-09-07T06:25:01.617 回答
0

用于urlencode您在查询字符串中传递的变量

于 2012-09-07T06:19:22.493 回答