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

时间:2012-06-18 14:16:37

标签: php html

我正在使用

从外部文本文件加载HTML / PHP代码
$f = fopen($filename, "r");
while ($line = fgets($f, 4096)) 
{
  print $line;
}

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

3 个答案:

答案 0 :(得分:4)

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

但请注意警告:

  

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

如果有的话,试着找一个不同的溶液吗?

答案 1 :(得分:0)

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

检查PHP Manual for file_get_contents()

答案 2 :(得分: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(),如果可能,请不要考虑安全性和性能问题。