URL字符串中的Html和PHP连接

时间:2016-01-21 15:10:37

标签: php html concatenation

这个HTML / PHP有什么问题 - 只是看起来不对 - 是否有更好的方法将html和php变量连接成url字符串???

<a href="movie_night_del.php?id=<?php echo $id ?>&mov=<?php echo $mov ?>">Click here to delete</a>

2 个答案:

答案 0 :(得分:2)

我更喜欢用“更多php”的方式来做,例如:

echo '<a href="movie_night_del.php?id=' . $id . '&mov=' . $mov . '">Click here to delete</a>'
//or
echo "<a href='movie_night_del.php?id={$id}&mov={$mov}'>Click here to delete</a>"
//or escaping "
echo "<a href=\"movie_night_del.php?id={$id}&mov={$mov}\">Click here to delete</a>"

答案 1 :(得分:0)

正如评论中所提到的,这样做并没有什么不妥,但如果查询字符串包含需要编码的字符,那么您的值可能会破坏查询字符串。

例如&=具有特殊含义,因此如果它们出现在您的变量值中,它们就会破坏查询字符串。

您可以使用以下方式转义单个值:

... &mov=<?php echo urlencode($mov) ?> ....

或者你可以使用http_build_query自动编译和编码你的字符串:

$data = array(
  'id' => $id,
  'mov' => $mov
);
$url = 'movie_night_del.php?' . http_build_query($data);

也许最后一个选项就是你要找的。