PHP在'&'之后获得价值不服用?

时间:2012-09-07 06:16:05

标签: php

在以下代码中....

<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 个答案:

答案 0 :(得分:4)

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

在将字符串插入网址之前,通过urlencode(立即)运行您的字符串。

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

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

答案 1 :(得分:1)

因为&是一个特殊字符。

使用PHP函数urlencode()urldecode()

答案 2 :(得分:0)

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

答案 3 :(得分:0)

为了补充以前的答案,这将有效

a href =“General.php?category = Social%26 Political”

%26是字符&amp;

的网址代码