从数据库中获取html代码块,并使用php正确显示它,而不会弄乱页面
所以我正在为一个网站做一个简单的后端,在那里给定页面的内容可以快速编辑。页面内容保存在MySQL数据库中,并且可能包含HTML标记 在编辑页面上,我希望管理员能够在选择编辑选项之前查看页面上写入的HTML。所以,我想显示HTML标记和所有内容。如何在一大块文本中转义标记 浏览一下我了解到的。但这似乎对我想做的事情不起作用 例如,如果我有:从数据库中获取html代码块,并使用php正确显示它,而不会弄乱页面,php,html,escaping,Php,Html,Escaping,所以我正在为一个网站做一个简单的后端,在那里给定页面的内容可以快速编辑。页面内容保存在MySQL数据库中,并且可能包含HTML标记 在编辑页面上,我希望管理员能够在选择编辑选项之前查看页面上写入的HTML。所以,我想显示HTML标记和所有内容。如何在一大块文本中转义标记 浏览一下我了解到的。但这似乎对我想做的事情不起作用 例如,如果我有: $content = "<h1>test</h1>"; echo "<![CDATA[".$content."]]>";
$content = "<h1>test</h1>";
echo "<![CDATA[".$content."]]>";
写在页面上。你试过htmlentities吗 像这样:
echo htmlentities($content);
如果要查看页面上转义的Html内容,请不要使用
htmlentities($content)
,因为特殊字符(如许多UTF-8字符)将无法正确显示,因为Html实体的解释并不总是正确的
如果$content
为UTF-8,则:
echo htmlspecialchars($content, ENT_QUOTES, 'UTF-8');
是显示Html时正确转义特殊字符(如&、“、”)所需的全部内容。仅此而已
请确保与$content
的编码匹配。我强烈建议对所有内容使用UTF-8
要在Html文档中设置编码,请执行以下操作:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>
...
其中
charset=ENCODING\u OF_$content
CDATA
标记用于XML。当您htmlspecialchars($content)
时会发生什么?您确定存储在数据库表中的html标记正确吗?@YzmirRamirez:htmlspecialchars是解决此问题的错误函数。它将转换“@YzmirRamirez,htmlspecialchars正是我所需要的!展示角色是我想要完成的。嗯。。。我想你应该给管理员一个查看RenderHTML的机会,而htmlspecialchars是错误的。但好吧,为我感到羞耻,为他的评论+1:)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>