你好有办法在处理php代码时获取php文件的内容吗? 我需要将代码包含到另一个页面中,但我需要将其打印在特定位置。
如果我使用include,代码将在html标记之前打印,当然导致它在页面之前被处理,但如果我使用file_get_contents,内容将在页面中获取,但如果我有一些php标签,我也会得到这些作为纯文本。
谢谢。
编辑:对不起,伙计们在我写作的时候似乎喝醉了。我纠正了。我有一个处理页面内容的引擎,将它们放入变量中,然后将它们打印在html页面中的特定位置。在引擎中我需要“嵌入”其他“静态”页面的代码,这些页面可能有一些php标签。如果我使用file_get_contents,我会将内容作为纯文本(没有解析php标签),如果我使用include它就行不通,因为它不是它的功能。所以我需要的是将PROCESSED代码嵌入到引擎中(作为准备打印的HTML)。
答案 0 :(得分:22)
您可以使用output buffer包含PHP文件,但保存结果输出以供以后使用,而不是立即将其打印到浏览器。
ob_start();
include('path/to/file.php');
$output = ob_get_contents();
ob_end_clean();
// now do something with $output
答案 1 :(得分:-1)
您的问题不是100%明确,但看起来您想要包含远程php源,您可以使用include(“http://domain.com/path/to/php.phps”);而不是file_get_contents。
你说你只需要远程代码的一部分,如果是这样,你可以使用file_get_contents,用substr或reg exp保存在本地文件中的这部分代码并包含或执行eval。 / p>
这些解决方案都不安全或不推荐,您不应该包含远程文件来直接评估您的代码。
答案 2 :(得分:-1)
如果我理解正确;您正在尝试加载一个php文件来读取其内容并同时执行它。
即:
include('/foo/bar')
和
file_get_contents('/foo/bar')
以下函数同时执行并返回文件的内容(假设它存在。
)function load_and_process($path) {
if(file_exists($path) {
include($path);
return file_get_contents($path);
}
return false;
}
并称之为:
if($file_contents = load_and_process('/foo/bar')) {
echo "Loaded $file_contents from /foo/bar";
}