3

我正在使用 pre 标签在我的网站上显示代码片段,这些片段包含 html 和 php。

到目前为止,我已经使用 Jquery 将代码片段中的 html 转换为纯文本,但 php 标记仍在执行中。

我用于将 pre 标记的 html 内容转换为纯文本的代码:

$(document).ready(function(){
    $("pre").text($("pre").html()); 
});

我使用它的一个例子:

<pre>
    <p>paragraph Content</p>
    <h1>html code</h1>
    <?php echo "this is php example code"; ?>
</pre>

前两行在浏览器中显示标签和一切完美,但第三行执行 php 标签,仅呈现此 php 示例代码。任何人都可以帮助我,以便我也可以在我的代码片段中显示 php 标签吗?

此外,如果有人知道将 html/css 和 php 呈现为您网站上的代码片段的更好解决方案,那将非常有帮助。

4

4 回答 4

2

您应该转义<and符号-分别>用它们的 HTML 实体替换它们;)&lt;&gt;

如果您想要全面全面地转换为 HTML 实体,请尝试在http://centricle.com/tools/html-entities进行转换

通常,将所有符号转换为代码块中各自的 HTML 实体是一种很好的做法。

于 2013-03-14T09:37:58.897 回答
2

The problem with your approach is, that you try to influence the rendering after the browser has processed the file. When you look at the sourcecode of your page, you will notice that there really is nothing else than "this php example code" in there, because the server parsed that part of your code and executed it, which leads to nothing but the string you put into that echo command.

You need to handle your output before your send it to the client and fetch all occurrences of <pre> and </pre> to replace all < and > between them with their respective HTML entities.

Have a look at this question to find out the best approach to parse the HTML and get the appropriate elements in order to modify them.

于 2013-03-14T09:40:39.613 回答
1

尝试替换<?php ... ?>

&lt;? .... &gt;

于 2013-03-14T09:38:01.213 回答
1
<pre>
    &lt;p&gt;paragraph Content&lt;/p&gt;
    &lt;h1&gt;html code&lt;/h1&gt;
    &lt;?php echo "this is php example code"; ?&gt;
</pre>

这是一个JSFiddle 示例,因此您可以查看它在页面上的呈现方式。

于 2013-03-14T09:38:50.593 回答