【问题标题】:php file_get_contents() using it within the child filephp file_get_contents() 在子文件中使用它
【发布时间】:2011-01-03 12:55:44
【问题描述】:

这有点奇怪,但理想情况下我想在我的索引页面中做一些事情,比如:

file_get_contents("file1.php");

然后在file1.php中我想获取file2.php的内容

file_get_contents("file2.php");

很明显,当 index 调用 file1 时,这是可行的,但是当 file1 调用 file2 时,它会获取文件内容,但它没有执行 file2 中的任何 php。

还应该提到我不使用包含的原因是因为文件被远程调用。

有什么建议吗?

干杯

肖恩

【问题讨论】:

    标签: php


    【解决方案1】:

    file_get_contents 是获取文件内容为字符串,所以不执行任何代码。 如果你想从另一个文件中调用来执行一个文件,你必须执行include/include_oncerequire/require_once,查看here 以查看差异。

    这也适用于远程文件,只要您在 php.ini 中将 allow_url_include 设置为 true 并且根据 docs 使用 php >= 5.2.0

    【讨论】:

      【解决方案2】:

      必须使用include() 或require(),file_get_contents 获取内容不进行解析。或者 eval() 但这是个坏主意。

      【讨论】:

      • 我正在远程调用文件
      • 如果你真的必须使用 eval(file_get_contents("file1.php")),但我相信还有其他方法可以做你想做的事情,也可以使用 cURL 获取远程文件的内容,它要快得多。
      • 根据php.net/manual/en/features.remote-files.php:“您可以使用HTTP和FTP URL,大多数函数以文件名作为参数。此外,URL可以与include()一起使用,include_once( )、require() 和 require_once() 语句(自 PHP 5.2.0 起,必须为这些启用 allow_url_include)"
      • 是的,但我认为它们不会被解析,您只会包含远程脚本的输出。除非是纯文本,否则无法阅读源代码。 @Shane 确保远程文件是纯文本(源代码)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 2016-03-08
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多