防止php在预标签之间呈现/执行

时间:2013-03-14 09:35:01

标签: php javascript jquery html rendering

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

到目前为止,我已经使用Jquery将codesnippets中的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 个答案:

答案 0 :(得分:2)

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

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

转换它们

通常,最好将所有符号转换为代码块中各自的HTML实体。

答案 1 :(得分:2)

您的方法存在的问题是,您尝试在浏览器处理完文件后影响渲染。当你查看你的页面的源代码时,你会注意到那里除了“这个php示例代码”之外别无其他,因为服务器解析了你的部分代码并执行它,这导致除了你的字符串放入echo命令。

您需要在将输出发送到客户端之前处理输出,并获取所有出现的<pre></pre>以替换它们之间的所有<>各个HTML实体。

查看this question,找出解析HTML的最佳方法,并获取相应的元素以进行修改。

答案 2 :(得分:1)

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

&lt;? .... &gt;

答案 3 :(得分: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 example,因此您可以看到它在页面上的呈现方式。