-2

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

我有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

谢谢你的建议。

4

2 回答 2

0

要包含您所做的文件

<?php
include(file);
?>

所以在这种情况下

X 包含<?php include('Y'); ?>并且 Y 包含<?php include('Z') ?>

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

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

于 2013-02-20T18:14:28.943 回答
0

这个问题非常不清楚和模糊,但我有一个猜测:

文件 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);
?>
于 2013-02-20T18:31:57.837 回答