我想通过'&'查询字符串中的运算符我试图使用urlencode和urldecode 但它不起作用。我这样做:
$abc="A & B";
$abc2=urlencode($abc);
然后我传递的值就像这样
<a href="hello.php?say=<?php echo $abc2 ?>"><?php echo $abc;?></a>
并在下一页获得价值
$abc=$_GET['say'];
$abcd=urldecode($abc');
echo $abcd;
但输出不是A & B
我做错了什么?
答案 0 :(得分:2)
试试这个:
$url = '?' . http_build_query(array(
'say' => 'A & B'
));
// Then just:
echo $_GET['say'];
答案 1 :(得分:2)
基本上它应该可行我在网络服务器上尝试了以下内容:
$a = 'A & B';
echo urlencode($a);
echo '<br />';
echo urldecode(urlencode($a));
输出
A+%26+B
A & B
我猜你还有另一个逻辑或语法错误导致你的&amp;不能正确解码,在你的代码中你的urldecode()中有一个叛逆者 - 语法。
这是您的所有代码还是使用“类似”代码?你原来的代码会很有用。
答案 2 :(得分:0)
您似乎在以下代码的第2行的$ abc旁边添加了单引号:
$abc = $_GET['say'];
$abcd = urldecode($abc);
echo $abcd;
答案 3 :(得分:-1)
&安培;是一个特殊的HTML字符,您需要将其转换为&
。
试试这个:
$abc = "A & B";
<a href="hello.php?say=<?php echo htmlentities($abc); ?>"><?php echo $abc; ?></a>