有没有办法从 PHP 代码加载的文件中解析 PHP


Is there a way to parse PHP from a file that has been loaded by PHP code?

我正在从外部文本文件加载HTML/PHP代码

$f = fopen($filename, "r");
while ($line = fgets($f, 4096)) 
{
  print $line;
}

有没有办法让服务器解析此文件中的 PHP 代码?我目前只在外部文件(保存在$filename)中使用一个简单的<?php echo("test"); ?>来测试它是否有效。我尝试在主文件中使用 ob_start()ob_end_flush(),但无济于事。我对其他解决方案持开放态度,但如果可能的话,我想保持文件的分离,只使用 PHP 来简化未来对网站的升级。

看起来你正在寻找这个: http://php.net/manual/en/function.eval.php

但请牢记警告:

eval() 语言结构非常危险,因为它允许 执行任意 PHP 代码。因此,不鼓励使用它。如果你 已经仔细验证了除了使用它之外别无选择。 构造,特别注意不要传递任何用户提供的数据 在没有事先正确验证的情况下进入它。

如果有的话,试着找到一个不同的解决方案?

您可以使用

file_get_contents($link)来获取文件的输出。

查看 PHP 手册中的 file_get_contents()

以下内容将满足您的需求。

如果您在模板类型的场景中使用它,即想要将数据显示到 PHP 文件并回显结果,请使用 ob_start 和 get_clean 来捕获输出并将结果存储在变量中:

ob_start();
eval('?>'.file_get_contents($file).'<?');
$result = ob_get_clean();
echo $result;

否则,一个简单的:

eval('?>'.file_get_contents($file).'<?');

会工作。

注意:eval() 应始终谨慎使用,如果可能的话,根本不用于安全和性能问题。