我想用echo,html标签输出.首先代码是这样的:
$image = '[img]'."image_url".'[/img]<BR>';
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为输出是:
*[IMG] IMAGE_URL [/ IMG]*
然后闯入新的界限.
然后我找到了解决方案:
$image = '[img]'."image_url".'[/img]<BR>';
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么单引号不按字面意思输出字符串,因为我认为它们会,并且还有其他任何方式,所以我不必写所有这些<和>?
您的问题来自对PHP和HTML如何工作的基本误解.引号是PHP语法的一部分,不能影响浏览器如何解释引用的字符串,因为浏览器永远不会看到引用的字符串.当PHP代码执行时,引号会消失,只有PHP脚本的输出才会发送到浏览器.
也就是说,引号并不是为了控制字符串中HTML标签的解释.引用样式是关于转义序列的\n和\t; 单引号不支持转义序列(除了\'),而双引号将它们解释为文字新行/制表符/等.这两种引用样式都与尖括号和HTML标记无关.
如果你想在浏览器中显示比小于号字面大于和小于,你必须发送浏览器编码的HTML实体>和<分别.您可以echo ">";通过使用PHP专用于编码字符串中的HTML实体的函数之一来手动输出字符串,或者更常见地输出字符串:
echo htmlspecialchars("x <= y <= z"); # outputs x <= y <= z
echo htmlspecialchars("<br>"); # outputs <br>
Run Code Online (Sandbox Code Playgroud)