如何在 php echo 中使用多个引号

How to use multiple quotes inside php echo

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

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

使用符号转义(\'):

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

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

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

所以:

<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;">

为避免与引号混淆,请尝试这样的操作:

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

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

但是,如果可能,尽量避免使用 php.

回显 html 元素