我正在从外部文本文件加载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() 应始终谨慎使用,如果可能的话,根本不用于安全和性能问题。