php echo将html输出为文本
php echo将html输出为文本
我正在尝试使用php构建包含onclick="Javascript"
的html代码,
但是我一直收到一个错误,说在控制台中缺少}
,然而事实并非如此。
尽管有错误,但网站显示得很完美。
然后我遵循了这篇帖子
并使用了htmlentities
方法。
起初它似乎工作正常,但我一定改变了什么,因为现在它将html字符串输出为文本而不是显示元素。
这个问题在不同的平台/浏览器上都存在,所以我不认为这是缓存相关的问题。
在php脚本中还有其他正确输出html的元素,只是似乎是这一行有问题。
提前感谢。
echo htmlentities('' . $db_field['Title'] . '
');
问题的原因是PHP代码中使用了短标签(<?=
)输出HTML文本,但在使用短标签时没有正确转义引号。这导致在输出HTML文本时出现了错误。
解决方法是在短标签中正确转义引号。将<a onclick="showAndroidToast('<?=$_SESSION[\'user_id\']?>','<?=$db_field[\'ID\']?>');
修改为<a onclick="showAndroidToast('<?=$_SESSION['user_id']?>','<?=$db_field['ID']?>');
。
需要注意的是,使用短标签的做法不是一个好主意,因为不是所有的网站都支持短标签。从PHP5.4开始,<?=
标签无论是否启用了short_open_tag
设置都是可用的。
,问题的原因是在PHP代码中使用了短标签输出HTML文本时没有正确转义引号,解决方法是在短标签中正确转义引号。建议避免使用短标签,因为不是所有的网站都支持短标签。从PHP5.4开始,<?=
标签无论是否启用了short_open_tag
设置都是可用的。
问题:
在使用htmlentities()
函数时,输出的内容会被翻译成浏览器可以解释为文字符号来显示的字符。这样可以告诉浏览器显示HTML和代码而不实际解释它。它还允许我们显示不希望浏览器意外解析的符号。如果您有一个包含HTML的字符串,希望浏览器来解释它,请不要使用htmlentities()
。
原因:
htmlentities()
函数会将HTML代码中的特殊字符转换为实体编码,以防止其被浏览器解析为HTML标签。但是,如果您希望浏览器能够正确解释HTML代码并将其作为HTML标签显示,使用htmlentities()
函数会导致HTML代码被转义为实体编码,从而无法正确解析。
解决方法:
为了正确显示HTML代码并被浏览器解析,应避免使用htmlentities()
函数。相反,可以直接将HTML代码作为字符串输出,同时对其中的特殊字符进行转义,例如使用htmlentities()
函数对特殊字符进行转义,然后将转义后的字符串与HTML标签进行拼接输出。
以下是正确的示例代码:
print '<h1>' . htmlentities("I have a < and > sign I don't want interpreted") . '</h1>';
更多详情请参阅文档:http://php.net/manual/en/function.htmlentities.php