将HTML显示为代码

时间:2011-03-13 18:45:38

标签: html pre

我构建了一个简单的站点,允许用户共享代码,将代码保存在数据库中作为HTML。 e.g。

    <!DOCTYPE html>
            <html lang="en">
                <head>
                    <meta http-equiv="content-type" content="text/html; charset=utf-8">
                    <meta name="viewport" content="width=1024">
                    <title></title>
                </head>

                <body id="" class="">


</body>
</html>

我遇到的问题是在网站上显示它以供其他人查看,当我将数据库吐出的内容包裹在<code><pre></pre></code>内时,它仍会呈现HTML并且不会将其视为要显示的代码。我已经读过你必须使用&gt;来解决这个问题,但这是不可行的,因为用户将共享原始代码,并且无法开始将代码转换为像这样的html实体!我该如何解决?感谢。

以下是将表单插入数据库的表单代码:http://pastebin.com/i3pn2AjT

这就是我目前的显示方式: <div class="code"> <pre> <?php echo get_post_meta($posts_post_id, 'post_code', true); ?> </pre> </div>

2 个答案:

答案 0 :(得分:7)

您需要在显示时或插入时转义HTML代码。

从您之前的问题看,您似乎在使用PHP。您可以使用htmlentities()实现此目的。

例如:

<code><?php echo htmlentities($userSuppliedHTML, ENT_QUOTES, 'UTF-8'); ?></code>

答案 1 :(得分:0)

您可以像这样尝试php函数“ def extract_day(name): match = re.search('abc_2017-07-(\d{2})\.tar', file) try: day = match.group(1) except : day = None return day ”:

highlight_string();

它将('input')输出为带有颜色编码的字符串。 看看它的php文档:http://php.net/manual/en/function.highlight-string.php