在 HTML 标记中使用 PHP 变量?

2022-08-30 20:16:49

我对php很陌生,但我被困在这个问题上...假设我等待使用给定参数将链接放到另一个站点,我该怎么做?

这就是我现在拥有的:

<html>
<body>
<?php
  $param = "test";

  echo "<a href="http://www.whatever.com/$param">Click Here</a>;
?>

</body>
</html>

答案 1

好吧,对于初学者来说,您可能不想过度使用echo,因为(就像您的情况一样)您很容易在引号上犯错误。

这将解决您的问题:

echo "<a href=\"http://www.whatever.com/$param\">Click Here</a>";

但你真的应该这样做

<?php
  $param = "test";
?>
<a href="http://www.whatever.com/<?php echo $param; ?>">Click Here</a>

答案 2

您可以通过多种方式执行此操作,具体取决于您使用的报价类型:

  • echo "<a href='http://www.whatever.com/$param'>Click here</a>";
  • echo "<a href='http://www.whatever.com/{$param}'>Click here</a>";
  • echo '<a href="http://www.whatever.com/' . $param . '">Click here</a>';
  • echo "<a href=\"http://www.whatever.com/$param\">Click here</a>";

双引号允许在字符串中间使用变量,其中单引号是字符串文本,因此,将所有内容解释为字符串 - 仅此而已 - 甚至不会扩展为表示新行字符,它将只是字符和顺序。\n\n

您需要小心使用您决定的任何类型的引用。您不能在双引号字符串中使用双引号(如示例中所示),因为您将提前结束字符串,这不是您想要的。但是,您可以通过添加反斜杠来转义内部双引号。

另外,在将不安全的变量(由用户填充)输出到浏览器时,您可能需要小心XSS攻击。


推荐