从字面上看,以HTML格式输出PHP代码


Output PHP Code in HTML, literally

我的问题很简单。我想做的只是用HTML编写实际的PHP代码,而不执行它。例如,我想写

<div id = "code"><?php
echo 'Bla Bla Bla';
?></div>

我不想执行这个 PHP。 我想通过以某种方式转义 <?php 标签(我不想删除它们)在 html 文档上写 PHP 代码。

不幸的是,当我通过这样做将其回显到浏览器时:

<div id = "code"><?php echo '<?php
echo "Bla Bla Bla";
?>' ?></div>

我也尝试将代码放入变量中,即使这样也没有奏效。

我的PHP代码被浏览器注释掉了。我可以在 chrome 的View Page Source选项中看到它,但浏览器认为这是一个评论。

请为我的问题提供解决方案。

提前谢谢。

PS:我正在使用CodeMirror使用"application/x-httpd-php"输出嵌入式PHP/HTML代码。

编辑 #1

我可以将 lt 和 rt 用于标记,但实际上不能,因为 CodeMirror 只有在找到<?标记时才开始突出显示代码。

使用 &lt;?php echo "test"; ?&gt; 对 PHP 标签进行编码。

使用 htmlspecialchars() 转义你的代码:

<div id="code">
    <?php echo htmlspecialchars("<?php echo 'Bla Bla Bla' ?>") ?>
</div>

看看这里: http://www.php.net/manual/en/function.htmlentities.php

<div id = "code"><?php echo htmlentities('<?php
echo "Bla Bla Bla";
?>'); ?></div>

试试这个

<div id = "code">
    <?php echo htmlentities('<?php echo "Bla Bla Bla"; ?>'); ?>
</div>

尝试使用 htmlspecialchars

htmlspecialchars()

如果我正确理解了您的问题,那么您可以通过以下方法来实现它。

      <div class="test"><?php $a='<?php hii echo "hey there"?>';?></div>
解决方案

1:您的解决方案可能是不将文件命名.php...尝试.txt。这样,Web 服务器就不会将文件传递给 PHP 解析器。

解决方案

2:其他解决方案是从另一个 php 脚本中读出文件,该脚本与htmlspecialchars()具有所需代码的文件相结合file()

解决方案 3:如果您已经在变量中拥有代码,并且它以您可以在"源视图"中看到代码的方式输出,那么您只需使用 htmlspecialchars() 就足够