繁体   English   中英

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

[英]Prevent php from rendering/executing between pre tags

我正在使用预标签在我的网站上显示代码片段,这些片段包含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渲染为您网站上的代码片段,那将非常有帮助。

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

如果您希望全面和全面地转换为HTML实体,请尝试在http://centricle.com/tools/html-entities上转换它们

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

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

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

看看这个问题 ,找出解析HTML的最佳方法,并获取适当的元素以便修改它们。

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

&lt;? .... &gt;

<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示例,因此您可以看到它在页面上的呈现方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM