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

发布于 2024-12-17 12:07:51 字数 378 浏览 0 评论 0原文

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

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

浏览周围我了解到。但它似乎对我想做的事情不起作用。

例如,如果我有:

$content = "<h1>test</h1>";
echo "<![CDATA[".$content."]]>";

我最终会

test]]> 

在页面上写下。

So I'm making a simple backend to a website where contents of given pages can be quickly edited. Page contents are saved in a MySQL database and have the possibility of containing HTML tags.

On the edit page, I want the administrator to be able to view the HTML written on the page before choosing the option to edit it. So, I want to display HTML tags and all. How can I escape the tags in a big block of text?

Browsing around I learned about . But it doesn't seem to work for what I'm trying to do.

For example, if I have:

$content = "<h1>test</h1>";
echo "<![CDATA[".$content."]]>";

I simply end up with

test]]> 

written on the page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葮薆情 2024-12-24 12:07:51

如果要查看页面上的 Html 内容,请转义,不要使用 htmlentities($content) 因为特殊字符(如许多 UTF-8 字符)将无法正确显示,因为 Html 实体并不总是被正确解释。

如果 $content 是 UTF-8 则:

echo htmlspecialchars($content, ENT_QUOTES, 'UTF-8');

...

htmlspecialchars() 是您在显示 Html 时所需的全部内容,以正确转义 &、"、'、< 和 > 等特殊字符。就这样。

确保您匹配的编码$content。我强烈建议

在 Html 文档中设置编码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head> 

其中 charset=ENCODING_OF_$content

If you want to view the Html content on the page, escaped, don't use htmlentities($content) because special characters, like many UTF-8 characters, will not be displayed properly because the Html entities aren't always interpretted correctly.

If $content is UTF-8 then:

echo htmlspecialchars($content, ENT_QUOTES, 'UTF-8');

...

htmlspecialchars() is all you need when displaying Html to properly escape the special characters like &, ", ', <, and >. That's it.

Make sure you match the encoding of $content. I highly recommend using UTF-8 for everything.

To set the encoding in your Html Document:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head> 

Where charset=ENCODING_OF_$content.

最美的太阳 2024-12-24 12:07:51

您尝试过 htmlentities 吗?

像这样:

echo htmlentities($content);

Have you tried htmlentities?

Like this:

echo htmlentities($content);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文