我正在看php lynda讲座。下面是一个简单的例子来详细说明urldecode()函数,但我不知道为什么这对我不起作用。请指导我哪里错了
first_page.php
<?php $link_name='Second page' ;
$id=2;
$name="Johnson & Johnson";
?>
<a href="second_page.php?id=<?php echo $id ?>&name=<?php echo urldecode($name);?>"><?php echo $link_name;?></a>
second_page.php
<?php $id=$_GET['id'];
$name=$_GET['name'];
echo $id.'<br/>';
echo $name;
?>
output
2 约翰逊//对我来说应该是Johnson&amp;约翰逊 这是url字符串
id=2&name=Johnson%20&%20Johnson
为什么编码不正确?请帮忙
答案 0 :(得分:2)
因为你使用了错误的功能而无法正常工作:
&name=<?php echo urldecode($name);
应为urlencode()
<a href="second_page.php?id=<?php echo $id ?>&name=<?php echo urlencode($name);?>"><?php echo $link_name;?></a>
^^^ encode not decode
另一种方式:
<?php
$link_name = 'Second page';
$id = 2;
$name = "Johnson & Johnson";
$query_string = array('id' => $id, 'name' => $name);
$query_string = http_build_query($query_string);
?>
<a href="second_page.php?<?php echo $query_string; ?>"><?php echo $link_name; ?></a>