PHP ini file_get_contents external url

2022-08-30 11:00:13

我使用以下PHP函数:

file_get_contents('http://example.com');

每当我在某个服务器上执行此操作时,结果都是空的。当我在其他任何地方这样做时,结果是页面的内容可能是什么。但是,当我在结果为空的服务器上,在本地使用该函数时 - 不访问外部URL(),它确实有效。file_get_contents('../simple/internal/path.html');

现在,我很确定它与某个php.ini配置有关。然而,我不确定的是,哪一个。请帮忙。


答案 1

您正在寻找的设置是allow_url_fopen

你有两种方法可以在不改变php的情况下解决这个问题.ini,其中一种是使用fsockopen(),另一种是使用cURL

无论如何,我建议使用cURL,因为它是为此而构建的。file_get_contents()


答案 2

作为对 Aillyn 答案的补充,您可以使用如下所示的函数来模拟file_get_contents的行为:

function get_content($URL){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $URL);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
}

echo get_content('http://example.com');

推荐