Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止php在预标记之间呈现/执行_Php_Javascript_Jquery_Html_Rendering - Fatal编程技术网

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

防止php在预标记之间呈现/执行,php,javascript,jquery,html,rendering,Php,Javascript,Jquery,Html,Rendering,我使用pre标记在我的网站上显示代码片段,这些代码片段包含html和php 到目前为止,我已经使用Jquery将代码片段中的html转换为纯文本,但php标记仍在执行中 我用于将pre标记的html内容转换为纯文本的代码: $(document).ready(function(){ $("pre").text($("pre").html()); }); <pre> <p>paragraph Content</p> <h1>

我使用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>
我正在使用它的示例:


段落内容

html代码
前两行在浏览器中完美地显示了标记和所有内容,但第三行只执行php标记呈现此php示例代码。有谁能帮助我,让我也能在代码片段中显示php标记吗


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

您应该转义
符号-分别用它们的HTML实体
替换它们;)

如果您想要对HTML实体进行全面的转换,请尝试在

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

尝试将
替换为


p图像内容/p
h1html代码/h1
?php echo“这是php示例代码”?

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

您的方法的问题是,您试图在浏览器处理文件后影响呈现。当您查看页面的源代码时,您会注意到其中除了“此php示例代码”之外没有其他内容,因为服务器解析并执行了您的部分代码,这只会导致您在
echo
命令中输入的字符串

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


看看如何找到解析HTML的最佳方法,并获取适当的元素来修改它们。

不需要单独的工具来转换HTML实体,您只需响应PHP的
htmlentities
的结果即可。是的,这也是。忘记了OP首先运行的是PHP脚本;)理想情况下,您可以设置syntaxhighlighter()之类的东西,它为用户提供的不仅仅是一行,而且您不必自己进行任何格式化,但是仍然没有消除这样一个事实,当我在SyntaxHighlighter的pre标记中输入php标记时,它正在运行,而不是显示为纯文本。如果您计划显示代码,那么有php的开始和结束标记是非常多余的,特别是如果它只是片段。。。如果你真的想保留它们,几个ppl已经提供了答案=)可能的重复不完全是因为我知道如何在HTML中显示PHP代码,但我想在我的网站上的任何地方自动将其添加到预标记的内容中。当你使用PHP时,你总是可以通过PHP的
htmlentities
函数传递它。这将如上所述对输入进行编码。在PHP页面上放置
将看到PHP在执行JavaScript之前呈现内容。另外,使用JavaScript对HTML进行编码是个坏主意,因为禁用JavaScript的人最终会看到一个非常混乱的网站。谢谢,我还没有真正考虑过这一点,不过我正在寻找一种方法,每当我有一个pre标记时,就自动这样做。我不想每次都写出htmlentities函数,然后输入pre中的数据,虽然你说你想让它自动化,但听起来你好像是在手动输入内容。如果要手动执行此操作,只需执行简单的查找和替换操作,将
替换为
。如果内容被自动添加到页面(从数据库或外部文件),只需通过
htmlentities
函数传递内容,然后再将其显示在页面上。我正在手动添加代码片段内容,这是正确的,但我不想每次都写出围绕内容的函数。因为它主要是从我的代码编辑器复制粘贴。在这种情况下,只需使用查找和替换。大多数流行的文本编辑器都支持这一点——只需粘贴代码、查找并替换、复制更改后的代码并将其放到您的网站上即可。应该不会超过20秒,也不会浪费资源让你的服务器或用户浏览器替你做替换。这看起来是一个更好的答案,也是我一直担心的。这比我目前的知识要深刻得多,因为我对解析html几乎一无所知。最终目标是拥有与net.tutplus.com上类似的代码片段,这应该是一种更简单的方法。最简单的解决方案可能是将代码片段放入一个变量中(可能是从文件中读取),然后在输出之前通过
htmlspecialchars()
运行它。这将很容易、可靠并且无需HTML解析。如果您希望或需要将代码片段嵌入页面而不将其提取到单独的文件中,那么HTML解析可能是您唯一的选择。
<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>