我想用 echo 和 html 标签逐字输出。 首先代码是这样的:
$image = '[img]'."image_url".'[/img]<BR>';
但这不起作用,因为输出是:
*[img]图片网址[/img]*
然后换行。
然后我找到了解决办法:
$image = '[img]'."image_url".'[/img]<BR>';
我的问题是:
为什么单引号没有像我想象的那样按字面意思输出字符串,有没有其他方法可以让我不必编写所有这些 <
和 >
?
最佳答案
您的问题源于对 PHP 和 HTML 工作原理的根本误解。引号是 PHP 语法的一部分,不会影响浏览器如何解释带引号的字符串,因为浏览器永远不会看到带引号的字符串。引号会随着 PHP 代码的执行而消失,只有您的 PHP 脚本的 输出 会发送到浏览器。
也就是说,无论如何,引号并不是为了控制字符串中 HTML 标记的解释。引用样式是关于转义序列的,例如 \n
和 \t
;单引号不支持转义序列(\'
除外),而双引号将它们解释为文字换行符/制表符/等。这两种引用风格都与尖括号和 HTML 标签无关。
如果您希望浏览器显示文字大于号和小于号,您必须分别向浏览器发送编码的 HTML 实体 >
和 <
。您可以通过手动输出像 echo ">gt";
这样的字符串来实现这一点,或者更常见的是,使用 PHP 的一个函数专门用于对字符串中的 HTML 实体进行编码:
echo htmlspecialchars("x <= y <= z"); # outputs x <= y <= z
echo htmlspecialchars("<br>"); # outputs <br>
关于php - 输出html标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630675/