2012-06-18 40 views
2

我加载HTML/PHP代码从外部文本文件与有没有办法从PHP代码加载的文件中解析PHP?

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

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

+8

包含或要求有什么问题? –

+0

是的,你可以:[eval($ line);](http://php.net/manual/en/function.eval.php) –

+0

定义“外部” - 来自另一个URL还是来自文件系统? – Alnitak

回答

4

它看起来像您正在寻找这样的:http://php.net/manual/en/function.eval.php

但请采取警告,心脏:

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

如果有,请尝试找到不同的溶剂可能?

0

下面将做你的需要。

如果您在模板类型的情况下使用它,也就是说,要将数据显示到PHP文件,并呼应效果,请使用ob_start和get_clean赶输出和存储在variabe结果:

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

echo $result; 

否则,一个简单的:

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

会工作。

注意:应该总是谨慎使用eval(),并且如果可能的话,安全性和性能问题根本不用。

相关问题