【问题标题】:Html and PHP Concatenation in URL StringURL 字符串中的 Html 和 PHP 连接
【发布时间】:2016-01-21 15:10:37
【问题描述】:

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

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

【问题讨论】:

  • 这里不需要串联,作为
  • 没有任何问题。您刚刚选择分别回显每个变量。您可以选择在 php 中构建更大的字符串并输出整个内容,而不是小块。你如何做到这一点取决于你,这纯粹是一个代码可读性问题,归结为意见。

标签: php html concatenation


【解决方案1】:

我更喜欢用“more 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>"

【讨论】:

    【解决方案2】:

    正如 cmets 中所述,这样做并没有错,但如果您的值包含需要编码的字符,则它们可能会破坏查询字符串。

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

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

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

    或者您可以使用http_build_query 自动构建和编码您的字符串:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多