【问题标题】:Sending variables in URLs in PHP with echo使用 echo 在 PHP 中的 URL 中发送变量
【发布时间】:2010-06-01 18:05:53
【问题描述】:

我无法通过 Google 搜索正确的方法来转义 URL 中的变量,从而找到好的指导方针。基本上,我从表中的 MySQL 查询中打印出一堆结果,并且我希望每行中的一个条目成为该结果页面的链接。我认为这很容易,我只是在某处遗漏了撇号或反斜杠,但我无法弄清楚。这是导致错误的行:

echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> ";

这是我得到的错误:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

如何解决这个错误?

此外,在 URL 中使用 echo 和变量的一般准则是什么?

【问题讨论】:

  • 感谢大家的快速回复。我测试了下面的所有答案,它们都有效(对于将来查看此问题的人)。这似乎主要是偏好/可读性的问题。

标签: php mysql url variables


【解决方案1】:
echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> ";

这里有两点需要改变。一方面,movies.php 之后不应该有 /。第二个是 url 变量周围没有任何撇号。它应该是 movie_id=$row['movie_id']。每当我使用 php 变量时,我通常将其连接起来,而不是将其嵌入引号中。所以最后我会做这样的事情:

echo "<a href=\"movies.php?movie_id=" . $row['movie_id'] . "\"> Who Owns It? </a>";

【讨论】:

    【解决方案2】:

    双引号字符串中的$row['movie_id'] 是不允许的(尤其是单引号)。要么不写',要么使用花括号语法:

    echo "<a href = \"movies.php/?movie_id='$row[movie_id]'\"> Who Owns It? </a> ";
    echo "<a href = \"movies.php/?movie_id='{$row['movie_id']}'\"> Who Owns It? </a> ";
    

    更多信息请参见variable parsing

    【讨论】:

      【解决方案3】:

      这是一个更好的方法:

      $movie_id = urlencode($row["movie_id"]);
      echo '<a href="movies.php/?movie_id=', $movie_id, '"> Who Owns It? </a> ';
      

      祝你好运!

      【讨论】:

        【解决方案4】:

        这是一个更好的(er)方式:

        $movie_id = urlencode($row["movie_id"]);
        echo "<a href=\"movies.php?movie_id={$movie_id}\"> Who Owns It? </a> ";
        

        更容易阅读。除了单引号和双引号的速度之外,这已经不是什么大问题了。

        【讨论】:

          【解决方案5】:

          Echo 或 URL 与您的问题无关。我是PHP strings syntax

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-02-07
            • 2020-08-05
            • 1970-01-01
            • 2014-12-12
            • 1970-01-01
            • 2015-11-19
            • 2021-12-17
            • 2014-06-02
            相关资源
            最近更新 更多