【问题标题】:PHP file_get_contents with a php file带有 php 文件的 PHP file_get_contents
【发布时间】:2011-10-31 05:31:05
【问题描述】:

我正在使用file_get_contents() 来合并模板和分离内容并将它们一起输出为一个页面。

我遇到的问题是,如果这些文件中的任何一个有 PHP 语句,

<?php
    echo "example";
?>

PHP 并未实际运行,该语句似乎只是标记的一部分:

起初我以为我正在加载的文件中的 PHP 不会先运行,但后来我用以下内容制作了一个测试页面:

<?php
    echo file_get_contents("http://stackoverflow.com");
?>

还有uploaded it here to see that it works fine(首先处理PHP)。

我应该使用不同的功能吗?

【问题讨论】:

标签: php file


【解决方案1】:

您只需要include() PHP 文件。

注意安全问题。

如果要捕获文件的输出,请使用output buffering

【讨论】:

  • 感谢您的建议,但我更倾向于解释为什么此函数不会处理我首先在本地加载的文件中的 PHP。
  • @MartyWallace,它并不是要处理它。 file_get_contents 将脚本作为纯文本文件读取,不进行任何额外处理。你可以写一个eval(file_get_contents()),但这只是说include()的一种倒退方式。
  • 我明白了,但是您不能将include() 的结果附加到字符串中,可以吗?我对已加载的文件执行了一些操作,例如将某些字符串替换为 preg_match_all() 等。
  • @MartyWallace 使用输出缓冲捕获包含脚本的输出,然后将结果附加到字符串。
猜你喜欢
  • 2022-08-19
  • 2013-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 2012-01-05
  • 2014-02-11
相关资源
最近更新 更多