【问题标题】:Displaying PHP code in an HTML webpage as plaintext [closed]在 HTML 网页中将 PHP 代码显示为纯文本 [关闭]
【发布时间】:2020-11-30 10:43:50
【问题描述】:

我需要在网页末尾显示我的程序内容以进行分配,但它只是继续执行 PHP 而不是显示它。我试图使用<xmp></xmp>,但我猜它只适用于 HTML 代码。有什么方法可以让我在网页中显示 PHP 代码,而不必在整个程序中进行转义?当然这不是唯一的方法。

编辑:我想通了。只需将<?php 替换为<?php。不过,感谢您的经典尖刻回复。

【问题讨论】:

  • 您希望 PHP 如何确定需要执行的确切代码块?
  • 嗯,这就是我问的原因。
  • 如果你想执行一个PHP脚本,其中部分代码不是代码,那么你需要包含为文本文字,没有其他办法。它可以以任何可以想象的方式实现自动化,但这就是它的工作方式。
  • 你现在做得怎么样? PHP 不关心<xmp> 标签。那是 HTML 和浏览器。 <xmp><?php ... ?> 仍将执​​行 PHP 代码。您需要<?php ... 将文本“

标签: html


【解决方案1】:

只需使用file_get_contents 用您的代码创建一个php 字符串,然后使用htmlentities 回显它。

<?php

$code = file_get_contents('php_file.php');

?>

<h1>My essay</h1>
<pre><?php echo htmlentities($code); ?></pre>

【讨论】:

    【解决方案2】:

    我有什么方法可以在网页中显示 PHP 代码 [...] ?

    是的,有。

    如果您使用 mini 尖括号single guillemets 和 @987654323),您可以将 PHP 行添加到 HTML 中的任何元素(例如 &lt;code&gt;) @) 作为标准尖括号(&lt;&gt;)的占位符。

    然后,您可以在 DOM 内容加载后使用 javascript 将迷你尖括号重新转换为标准尖括号。


    工作示例:

    const myPHPCodeBlocks = document.querySelectorAll('code.php');
    
    for (myPHPCodeBlock of myPHPCodeBlocks) {
      
      let myPHPCode = myPHPCodeBlock.textContent;
      myPHPCode = myPHPCode.replace(/‹/g, "<");
      myPHPCode = myPHPCode.replace(/›/g, ">");
      myPHPCodeBlock.textContent = myPHPCode;
    }
    code {
      display: block;
      color: rgb(0, 0, 191);
      background-color: rgb(239, 239, 239);
      border: 12px solid rgb(239, 239, 239);
      border-top: none;
      white-space: pre;
    }
    <code class="php">
    ‹?php
    
    echo 'Hi, I\'m PHP!';
    
    for ($i = 0; $i ‹ 10; $i++) {
    
      echo '‹p›' . $i . '‹/p›';
    }
    
    ?›
    </code>
    
    <p>I&#39;m HTML</p>
    
    <code class="php">
    ‹?php
    
    echo '‹p›I\'m PHP again!‹/p›';
    
    ?›
    </code>

    【讨论】:

    • 如果它在一个 .php 文件中,它仍然会被 PHP 执行。
    • 是的,@deceze。你是绝对正确的,当然。我已经完全重写了我上面的答案。
    猜你喜欢
    • 2017-07-04
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2015-09-03
    相关资源
    最近更新 更多