考虑这样一个场景:您在不同的服务器上有两个 PHP 文件。您需要包含第一个文件中的第二个文件。
// main.php (http://www.mysite.com/main.php) include "http://www.sample.com/includeThis.php"; echo $foo; // includeThis.php (http://www.sample.com/includeThis.php) <?php $foo = "this is data from file one";
但是,在尝试包含远程文件时遇到问题。
了解限制
默认情况下,PHP 的配置禁止包含来自远程服务器的文件。出于安全原因施加此限制。要包含远程文件,您需要在 php.ini 中启用 allowed_url_include 指令。然而,由于潜在的安全风险,这通常被禁用并被认为是不好的做法。
替代解决方案:file_get_contents()
如果您需要从远程获取数据文件而不执行 PHP 代码,您可以使用 file_get_contents() 函数。它以纯文本形式返回远程文件的内容。
要使用此方法,请修改远程脚本以本地脚本可以处理的格式(例如 JSON)生成必要的数据。然后,在本地脚本中:
$remoteData = file_get_contents("http://www.sample.com/includeThis.php"); $data = json_decode($remoteData);
此解决方案允许您从远程文件检索数据,而不会影响安全性。
以上是如何包含来自另一台服务器的 PHP 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!