PHP file_get_contents函数无法使用Cloudflare(webserver的代理)

时间:2013-11-14 18:58:13

标签: php file-get-contents cloudflare

我已经使用Cloudflare几个月了,当我使用Cloudflare时,我的支付系统不能100%运行。检查脚本不起作用。没有Cloudflare,一切都运转正常。

我得到的错误是:

  

PHP警告:file_get_contents():php_network_getaddresses:getaddrinfo failed:这通常是主机名解析期间的临时错误,意味着本地服务器没有收到来自权威服务器的响应。在第2行的C:\ inetpub \ wwwroot \ check.php

  

PHP警告:file_get_contents(https://www.eurobellen.nl/bel/check.php?userid=name&ip=ip&ebpin=):无法打开流:php_network_getaddresses:getaddrinfo failed:这通常是主机名解析期间的临时错误,意味着本地服务器未收到权威服务器的响应。在第2行的C:\ inetpub \ wwwroot \ check.php

第2行是:

$ebcheck = file_get_contents("https://www.eurobellen.nl/bel/check.php?userid=name&ip=".$ip."&ebpin=".$_GET['ebpin']);

我一直在寻找2个小时,我尝试了几件事,但我无法解决它。我希望你们知道如何解决它?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用curl来完成此类任务。 curl特定于此类任务。

function get_contents($url, $ua = 'Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', $referer = 'http://www.google.com/') {
  if (function_exists('curl_exec')) {
    $header[0] = "Accept-Language: en-us,en;q=0.5";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, $ua);
    curl_setopt($curl, CURLOPT_REFERER, $referer);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    $content = curl_exec($curl);
    curl_close($curl);
  }
  else { 
    $content = file_get_contents($url);
  }
  return $content;
}

以上功能检查是否安装了卷曲扩展。如果已安装,则使用curl,无论如何它使用file_get_contents();

答案 1 :(得分:0)

我们不会影响php广告,这看起来有点奇怪。您是否收到任何特定的CloudFlare错误消息?