在PHP中包含远程文件

12

我无法在我的PHP脚本中包含远程的PHP文件。我想我的托管服务更改了PHP设置。

我之前使用的代码是:

include "http://domain.com/folder/file.php";

如何使用php.ini/.htaccess启用include函数?

是否有其他解决方法?

谢谢。


我刚刚检查了一下,我的服务器上allow_url_fopen和allow_url_include都是“开启”的。可能还有其他问题吗? - Gaurav Sharma
你想要包含的URL是什么? - Paul Dixon
2个回答

24
为了允许包含远程文件,必须在php.ini中将指令allow_url_include设置为On。但从安全角度来看,这是有风险的,因此通常被禁用(实际上我从未见过它被启用)。这与allow_url_fopen不同,后者处理打开(而不是包含)远程文件,通常启用,因为它使通过HTTP获取数据更加容易(比使用curl更容易)。

1
根据服务器配置(PHP版本),allow_url_include => 自PHP 5.2.0可用。自PHP 7.4.0起已弃用。 - bestprogrammerintheworld

4
为使用远程包含,php.ini中必须设置allow_url_fopenallow_url_include选项。
请注意,如果远程服务器启用了php,您将得到该远程脚本的输出,而不是脚本本身。如果确实想获取源代码,可以在远程服务器上添加符号链接,例如ln -s file.php file.php.source,然后将您的包含引用设置为file.php.source。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接