Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据库中获取html代码块,并使用php正确显示它,而不会弄乱页面_Php_Html_Escaping - Fatal编程技术网

从数据库中获取html代码块,并使用php正确显示它,而不会弄乱页面

从数据库中获取html代码块,并使用php正确显示它,而不会弄乱页面,php,html,escaping,Php,Html,Escaping,所以我正在为一个网站做一个简单的后端,在那里给定页面的内容可以快速编辑。页面内容保存在MySQL数据库中,并且可能包含HTML标记 在编辑页面上,我希望管理员能够在选择编辑选项之前查看页面上写入的HTML。所以,我想显示HTML标记和所有内容。如何在一大块文本中转义标记 浏览一下我了解到的。但这似乎对我想做的事情不起作用 例如,如果我有: $content = "<h1>test</h1>"; echo "<![CDATA[".$content."]]>";

所以我正在为一个网站做一个简单的后端,在那里给定页面的内容可以快速编辑。页面内容保存在MySQL数据库中,并且可能包含HTML标记

在编辑页面上,我希望管理员能够在选择编辑选项之前查看页面上写入的HTML。所以,我想显示HTML标记和所有内容。如何在一大块文本中转义标记

浏览一下我了解到的。但这似乎对我想做的事情不起作用

例如,如果我有:

$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>