从外部文件呈现 PHP 代码的另一种方法

我有一个文档 (doc1),它是一个 HTML/PHP 网站,带有一个“键”,用作替换文本的占位符。


我有第二个文档 (doc2),我想用另外几行代码显示 doc1。


这是当前的doc2代码:


    <?php


    $file = "doc1.php";

    $key = "<!-- Placeholder -->";

    $appcode = '!-- Replaced text -->

    <link rel="stylesheet" type="text/css" href="newcode.css">

    <script src="newcode.js"></script>

    <script>

    newCode();

    </script';


    $index = fopen($file, "r") or die("Unable to open doc1.php");

    $code= fread($index,filesize("doc1.php"));

    fclose($index);


    $index_replaced = (preg_replace ($key, $appcode, $code));


    echo($index_replaced);


    ?>

因此,如果我正在处理一个基本的 HTML 文件,这可以正常工作,但如果我将此方法用于 PHP 文件,则代码不会呈现。如何更改它以使 doc1 代码呈现?


慕标5832272
浏览 94回答 2
2回答

动漫人物

如果您在代码中这样做,您真的完全错过了 PHP 的意义,因为 PHP 主要是作为模板语言创建的。它旨在解决您现在尝试解决的问题,但以优雅和流畅的方式。与您现在尝试的僵化和过度设计的方式不同。如果您的文档实际上是 PHP 代码,那么只需将您替换<!-- Placeholder -->为<?=$placeholder?>,您现在可以在 doc2 脚本中执行以下操作以正确呈现它...&nbsp; &nbsp; <?php&nbsp; &nbsp; $placeholder = <<<'EOT'<link rel="stylesheet" type="text/css" href="newcode.css">&nbsp; &nbsp; <script src="newcode.js"></script>&nbsp; &nbsp; <script>&nbsp; &nbsp; newCode();&nbsp; &nbsp; </script'EOT;&nbsp; &nbsp; include 'doc1.php';你完成了!详细说明,只要它们是通过 PHP 运行的,它就适用于纯 HTML 或 PHP 文件。所以说你有一个像doc1.php下面这样的文件......<html>&nbsp; &nbsp; <?=$tag?>&nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; <h1>Hello PHP!</h2>&nbsp; &nbsp; </body></html>现在在doc2.php你有...<?php$tag = <<<'EOT'<title>This is how templating is done</title>EOT;include 'doc1.php';当你doc2.php通过 PHP 运行时,你会得到如下的最终输出......<html>&nbsp; &nbsp; <title>This is how templating is done</title>&nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; <h1>Hello PHP!</h2>&nbsp; &nbsp; </body></html>根据您的问题,这正是您所追求的:)

缥缈止盈

为了合并 PHP 文件并执行它,您需要使用includeor require。您可以使用输出缓冲区函数来捕获结果。ob_start();require($file);$code = ob_get_clean();$index_replaced = preg_replace($key, $appcode, $code);echo $index_replaced;
打开App,查看更多内容
随时随地看视频慕课网APP