【问题标题】:Passing value from database through URL in PHP having spaces通过带有空格的PHP中的URL从数据库传递值
【发布时间】:2017-06-23 07:25:18
【问题描述】:

我通过 URL 将一个变量值从数据库传递到一个 PHP 页面,并且该变量值中包含空格。空格之前的值成功传递,但空格之后没有。我能做些什么来传递完整的价值?我所做的 URL 连接显示在下面的代码中。 请帮忙!

<?php $linking = "appointment.php?name=";
$linking .="$row[5]";
echo "<a href=$linking>BOOK AN APPOINTMENT</a>" 
?>

【问题讨论】:

    标签: php mysql url get concatenation


    【解决方案1】:

    使用urlencode()编码您的值

    【讨论】:

      【解决方案2】:

      urlencode 应该这样做。还要在 href 周围加上双引号。

      <?php $linking = "appointment.php?name=";
      $linking .= urlencode($row[5]);
      echo "<a href=\"$linking\">BOOK AN APPOINTMENT</a>" 
      ?>
      

      进一步的改进是添加 htmlspecialchars 以防止 $row[5] 中的 & 字符和其中的 ":

      <?php $linking = "appointment.php?name=";
      $linking .= urlencode($row[5]);
      echo "<a href=\"".htmlspecialchars($linking, ENT_QUOTES)."\">BOOK AN APPOINTMENT</a>" 
      ?>
      

      【讨论】:

      • 是的@adder 我感谢你的回答,它给了我完美的解决方案!
      【解决方案3】:

      您也可以尝试rawurlencode。这会将空格编码为%20 而不是+。

      urlencode 将空格编码为 + 符号,而 rawurlencode 编码为 %20。

      <?php 
      $linking = "appointment.php?name=";
      $linking .=rawurlencode($row[5]);
      echo "<a href=$linking>BOOK AN APPOINTMENT</a>" 
      ?>
      

      【讨论】:

        【解决方案4】:

        用“-”之类的小丑或任何你想要的东西替换空格,例如 str_replace。然后,当您检索它时,只需将小丑替换为空格即可。

        【讨论】:

          猜你喜欢
          • 2017-11-15
          • 2021-07-04
          • 1970-01-01
          • 2012-01-04
          • 2014-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多