如何在 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\'">';
处理嵌套引号很痛苦。处理多层嵌套引号是一场噩梦。尽量避免它。
- 当您可以退出 PHP 模式时,不要使用
echo
- 将数据传递给 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;">
为避免与引号混淆,请尝试这样的操作:
<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 元素
我试图在 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\'">';
处理嵌套引号很痛苦。处理多层嵌套引号是一场噩梦。尽量避免它。
- 当您可以退出 PHP 模式时,不要使用
echo
- 将数据传递给 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;">
为避免与引号混淆,请尝试这样的操作:
<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 元素