【问题标题】:How to use multiple quotes inside php echo [duplicate]如何在php echo中使用多个引号[重复]
【发布时间】:2019-12-01 06:20:44
【问题描述】:

我试图在 php echo 中使用带有 javascript 的后备图像,但我对引号感到困惑,编写此语法以使其工作的正确方法是什么?

echo '<img class="rounded img-fluid" src="'.$user_image_src.'" alt="User Image" onerror="this.onerror=null; this.src='Fallback.jpg'">';

【问题讨论】:

    标签: javascript php syntax echo quotes


    【解决方案1】:

    使用符号转义(\'):

    echo '<img class="rounded img-fluid" src="'.$user_image_src.'" alt="User Image" onerror="this.onerror=null; this.src=\'Fallback.jpg\'">';
    

    【讨论】:

      【解决方案2】:

      处理嵌套引号很痛苦。处理多层嵌套引号是一场噩梦。尽量避免它。

      1. 当你可以退出 PHP 模式时不要使用echo
      2. 将数据传递到 HTML 时转义数据

      所以:

      <img 
          class="rounded img-fluid" 
          src="<?php echo htmlspecialchars($user_image_src); ?>"
          alt="User Image"
          data-fallback="Fallback.jpg"
          onerror="this.onerror=null; this.src=this.dataset.fallback;">
      

      【讨论】:

      • 你怎么看使用符号转义(\')
      • @SilverSurfer — 我请你回到我回答的第一段。
      【解决方案3】:

      为避免与引号混淆,请尝试以下操作:

       <img src="<?php echo $user_image_src; ?>" alt="Image not found" 
       onerror="this.onerror=null;this.src='Fallback.jpg';" />
      

      【讨论】:

        【解决方案4】:

        只需将这部分,this.src='Fallback.jpg;' 更改为 this.src="Fallback.jpg"。在 php.ini 中大部分时间使用单引号。当它是 mysql 查询时,请改用双引号。要回显 html,只需使用单引号将字符串括起来,对于 html 属性使用双引号以避免混淆。

        但是,如果可能,尽量避免使用 php 回显 html 元素。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-22
          • 2018-04-28
          • 2019-06-01
          • 2016-05-21
          • 2011-07-13
          • 2015-06-16
          • 2014-12-08
          相关资源
          最近更新 更多