我正在使用预标签在我的网站上显示代码片段,这些代码片段包含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渲染为您网站上的代码片段,那将非常有帮助。
答案 0 :(得分:2)
您应该转义<
和>
符号 - 将它们分别替换为HTML实体<
和>
;)
如果您想要全面而全面地转换为HTML实体,请尝试在http://centricle.com/tools/html-entities
转换它们通常,最好将所有符号转换为代码块中各自的HTML实体。
答案 1 :(得分:2)
您的方法存在的问题是,您尝试在浏览器处理完文件后影响渲染。当你查看你的页面的源代码时,你会注意到那里除了“这个php示例代码”之外别无其他,因为服务器解析了你的部分代码并执行它,这导致除了你的字符串放入echo
命令。
您需要在将输出发送到客户端之前处理输出,并获取所有出现的<pre>
和</pre>
以替换它们之间的所有<
和>
各个HTML实体。
查看this question,找出解析HTML的最佳方法,并获取相应的元素以进行修改。
答案 2 :(得分:1)
尝试将<?php ... ?>
替换为
<? .... >
答案 3 :(得分:1)
<pre>
<p>paragraph Content</p>
<h1>html code</h1>
<?php echo "this is php example code"; ?>
</pre>
这是一个JSFiddle example,因此您可以看到它在页面上的呈现方式。