2

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

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

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

4

3 回答 3

4

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

但请牢记警告:

eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

如果有的话,尝试找到不同的解决方案吗?

于 2012-06-18T14:18:56.343 回答
0

您可以使用file_get_contents($link)来获取文件的输出。

查看PHP 手册中的 file_get_contents()

于 2012-06-18T14:21:47.610 回答
0

以下将做你需要的。

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

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

echo $result;

否则,一个简单的:

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

将工作。

注意: eval() 应始终谨慎使用,如果可能,完全不要出于安全和性能问题。

于 2012-06-18T15:09:40.443 回答