为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕标5832272 2022-07-09 16:50:11
我有一个文档 (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 代码呈现?
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

如果您在代码中这样做,您真的完全错过了 PHP 的意义,因为 PHP 主要是作为模板语言创建的。它旨在解决您现在尝试解决的问题,但以优雅和流畅的方式。与您现在尝试的僵化和过度设计的方式不同。


如果您的文档实际上是 PHP 代码,那么只需将您替换<!-- Placeholder -->为<?=$placeholder?>,您现在可以在 doc2 脚本中执行以下操作以正确呈现它...


    <?php


    $placeholder = <<<'EOT'

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

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

    <script>

    newCode();

    </script'

EOT;


    include 'doc1.php';


你完成了!


详细说明,只要它们是通过 PHP 运行的,它就适用于纯 HTML 或 PHP 文件。所以说你有一个像doc1.php下面这样的文件......


<html>

    <?=$tag?>

    <body>

        <h1>Hello PHP!</h2>

    </body>

</html>

现在在doc2.php你有...


<?php

$tag = <<<'EOT'

<title>This is how templating is done</title>

EOT;


include 'doc1.php';

当你doc2.php通过 PHP 运行时,你会得到如下的最终输出......


<html>

    <title>This is how templating is done</title>

    <body>

        <h1>Hello PHP!</h2>

    </body>

</html>

根据您的问题,这正是您所追求的:)


查看完整回答
反对 回复 2022-07-09
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

为了合并 PHP 文件并执行它,您需要使用includeor require。您可以使用输出缓冲区函数来捕获结果。


ob_start();

require($file);

$code = ob_get_clean();

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

echo $index_replaced;


查看完整回答
反对 回复 2022-07-09
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信