1

我建立了一个简单的站点,允许用户共享代码,其中代码作为 HTML 保存在数据库中。例如

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

4

2 回答 2

7

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

从您之前的问题来看,您似乎正在使用 PHP。您可以使用htmlentities().

例如:

<code><?php echo htmlentities($userSuppliedHTML, ENT_QUOTES, 'UTF-8'); ?></code>
于 2011-03-13T18:49:41.010 回答
0

您可以像这样尝试php函数“ highlight_string();”:

<?php
highlight_string('<?php phpinfo(); ?>');
?>

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

于 2017-07-03T08:03:41.877 回答