【问题标题】:How to output PHP as text如何将 PHP 输出为文本
【发布时间】:2015-08-09 15:18:42
【问题描述】:

我正在制作一个小应用程序,让我可以在浏览器中编辑文件。通常这些将是 PHP 文件。我正在尝试找出一种方法,让我可以在页面上使用 PHP,同时将文件的内容打印为文本/纯文本,这样它们就不会被执行。

我已经研究过设置

header("content-type: text/plain");

但是,如果我在页面上包含此内容,PHP 将不会呈现任何内容,而我只希望打印的文件是纯文本格式。由于服务器一直在执行 PHP,我也玩过代码和 pre 标记,但无济于事。

【问题讨论】:

  • 该标头不应该影响 PHP 的执行方式,只影响浏览器如何查看它接收到的内容。

标签: php html server


【解决方案1】:

你不应该改变你输出正常编辑页面的方式。

您可以使用例如file_get_contents() 读取php 文件并将其直接输出到您的textarea。请注意,您需要确保 php 文件的内容不会破坏 html:

<textarea name="contents">
<?php 
echo htmlspecialchars(file_get_contents('your_file_to_be_edited.php'));
?>
</textarea>

【讨论】:

    【解决方案2】:

    我想你可能正在寻找highlight_file()。它甚至包括语法高亮。

    像这样使用它:

    highlight_file("phpFile.php"); 
    

    【讨论】:

    • 也许我遗漏了一些东西,但这将如何允许 OP 编辑​​文件?如果有的话,它会将 html 标记添加到 php 源代码中。
    • @jeroen 好吧,据我了解:作为文本/纯文本,因此它们不会被执行 OP 有一部分,他想打印文件,然后他还有其他的代码,他可以在其中编辑文件。
    • 可能有多种解释,一如既往;-)
    【解决方案3】:

    您可以使用htmlspecialchars函数(将特殊字符转换为HTML实体):

    <?php echo htmlspecialchars($fileContent); ?>
    

    还有一个相反的功能 - htmlspecialchars_decode(将特殊的 HTML 实体转换回字符)。

    【讨论】:

      【解决方案4】:

      下载:

      <?php
      header('Content-disposition: attachment; filename=gen.txt');
      header('Content-type: text/plain');
      
      
      echo "this is the file\n";
      echo " you could generate content here, instead.";
      ?>
      

      用于展示:

      highlight_file("yourFile.php"); 
      

      【讨论】:

      • 这就是如何下载一个文本文件,与如何显示一个用于编辑的 php 文件完全不同
      • 啊,是的。我了解您要下载。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2020-01-21
      • 2014-10-10
      相关资源
      最近更新 更多