【问题标题】:PHP echo truncates URL path with spacesPHP echo 用空格截断 URL 路径
【发布时间】:2016-02-04 06:01:39
【问题描述】:

我有一个 if/else 来处理可能具有也可能不具有 https:// 值的数据,我无法控制数据库中的数据。这很好用,除了 $row_WADAgbl_training['url'] 数据 URL 中有空格。在空间示例的第一个实例之后,回显似乎截断了 href URL:“文件名空间中断.jpg”。我试图将其包装在 urlencode(插入 + 符号)和 htmlentities(截断出现空格的位置)中。当我在 if/else 之外使用常规 href 时,它可以正常工作。

作品:<a href="http://www.domain.com/training/<?php echo($row_WADAgbl_training['url']); ?>" target="_top"><?php echo($row_WADAgbl_training['url']); ?></a>

<?php
          if(substr($row_WADAgbl_training['url'],0,8)=="https://")
          {
             echo "<a target=_top href=".$row_WADAgbl_training['url'].">".$row_WADAgbl_training['url']."</a>"; //starts with http://, no formatting needed
          }
          else 
          {
             echo "<a target=_top href=https://www.domain.com/training/".htmlentities($row_WADAgbl_training['url']).">".$row_WADAgbl_training['url']."</a>";
          }
          ?>

【问题讨论】:

  • 有效,什么无效?

标签: php html


【解决方案1】:

您忘记在属性值中添加单引号,因为它们可能包含空格(如您在问题中所述):

echo "<a target='_top' href='".$row_WADAgbl_training['url']."'>".$row_WADAgbl_training['url']."</a>";

echo "<a target='_top' href='https://www.domain.com/training/".htmlentities($row_WADAgbl_training['url'])."'>".$row_WADAgbl_training['url']."</a>";

【讨论】:

    【解决方案2】:

    你的 HTML 属性值must have quotes if they have a space in them:

      <?php
      if(substr($row_WADAgbl_training['url'],0,8)=="https://")
      {
         echo "<a target=_top href='".$row_WADAgbl_training['url']."'>".$row_WADAgbl_training['url']."</a>"; //starts with http://, no formatting needed
      }
      else 
      {
         echo "<a target=_top href=https://www.domain.com/training/'".htmlentities($row_WADAgbl_training['url'])."'>".$row_WADAgbl_training['url']."</a>";
      }
      ?>
    

    【讨论】:

      猜你喜欢
      • 2011-12-04
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多