PHP:file_get_contents包含include()的PHP文件;

时间:2013-08-12 15:01:48

标签: php include file-get-contents

我有一个PHP脚本,它使用file_get_contents调用主PHP模板(充当HTML模板),从中替换几个单词,然后将最终文件另存为目录中的另一个PHP。

但主PHP模板本身包含include();require_once();,替换单词后保存的文件不会加载从主模板调用的文件。

保存文件的HTML源代码中包含<?php include('file_here'); ?>,但不包含file_here的输出 - 请参阅图像。

enter image description here

如何调用file_get_contents();并且仍然让主模板执行include();或require_once(); ?

1 个答案:

答案 0 :(得分:5)

file_get_contents()将获取文件的内容,而不是将其作为PHP脚本执行。如果你想要执行这段代码,你需要包含它,或者处理它(例如通过对Apache的HTTP请求)。

如果您包含此文件,它将被处理为PHP代码,当然,打印您的HTML标记(include*可以采用任何类型的文件)。

如果在打印之前需要使用其内容,请使用ob_*函数来操作PHP输出缓冲区。请参阅:http://www.php.net/manual/fr/ref.outcontrol.php

ob_start(); // Start output buffer capture.
include("yourtemplate.php"); // Include your template.
$output = ob_get_contents(); // This contains the output of yourtemplate.php
// Manipulate $output...
ob_end_clean(); // Clear the buffer.
echo $output; // Print everything.

顺便说一句,这种机制对于模板引擎来说听起来很重。基本上,模板不应包含PHP代码。如果您想要这样的行为,请查看Twig:http://twig.sensiolabs.org/