【问题标题】:How to include a php file in a html file via a php script [duplicate]如何通过php脚本在html文件中包含php文件[重复]
【发布时间】:2013-02-20 18:06:57
【问题描述】:

我之前已经发布过这个问题,但人们总是问不必要的问题。我会用简单的方式解释一下。

我有 3 个文件:

  1. 一个 php 文件(仅包含 html,这很重要):我们将其称为 X 文件。
  2. 一个 php 文件,其中有一些数据库查询以在屏幕上插入数据库数据:Y 文件
  3. 一个 php 文件(一个会进行一些操作的脚本):Z 文件

所以,我想用 Z 的脚本将 Y 包含到 X 中。

Z中,我创建了一个str_replace($text, $new, file_get_contents($file));

唯一的事情是我需要在 X 中包含 PHP 打开和关闭标签,因为其中没有 php 标签。

所以,$new = "<?php include('Y.php'); ?>";。 如果您尝试,将不会在字符串中考虑关闭标记,但这就是我想要的。

希望这个问题现在很清楚。我再清楚不过了。 :D

谢谢你的建议。

【问题讨论】:

  • 您能否详细说明要求没有 X 中的标签?
  • 您应该编辑原始问题以澄清它。不要不断添加重复的问题
  • 如果我在里面改了,里面所有的cmet都没有用了,所以我把它关闭了
  • 停止“重做”这个问题。您应该修复您现有的问题,而不是发布三份相同的问题。
  • 你不需要 php 打开和关闭标签,除非有 php 代码可以解释。 IE。如果需要,它甚至可以是 HTML 文件。在 X 中,您可以定义自己的标签 f.e. {content} 并将其替换为您的数据库查询结果。 SMARTY 等模板系统可以帮助您完成任务。

标签: php html tags include


【解决方案1】:

要包含你所做的文件

<?php
include(file);
?>

所以在这种情况下

X 包含 &lt;?php include('Y'); ?&gt; 而 Y 包含 &lt;?php include('Z') ?&gt;

但是,如果您正在做我认为您正在做的事情(某种模板),您最好查看溢出缓冲区(例如 ob_start 和 ob_end_flush)

这些可以将所有回显信息放入一个变量中以供稍后修改,内部的 php 也会运行,而不是像您的示例中那样使用 file_get_contents() 读取为文本

【讨论】:

    【解决方案2】:

    这个问题很不清楚也很模糊,但我有一个猜测:

    文件 X 是一些您想要替换特殊标记的 HTML。
    文件 Y 从 DB 中加载应该替换标记的值。
    文件 Z 进行替换。

    这可以这样解决(文件 Z):

    <?php
    ob_start();
    include("Y.php");
    $repl = ob_get_contents();
    ob_end_clean();
    
    ob_start();
    include("X.php");
    $src = ob_get_contents();
    ob_end_clean();
    
    echo str_replace("THEREPLACEMENTMARKER", $repl, $src);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-07-08
      • 2013-12-04
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      相关资源
      最近更新 更多