PHP:urldecode($ str)无效

时间:2014-09-28 08:28:49

标签: php apache

我正在看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

为什么编码不正确?请帮忙

1 个答案:

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