Cron Jobs | getaddrinfo PHP中的file_get_contents方法出错

时间:2014-08-12 17:41:15

标签: php cron file-get-contents getaddrinfo

我已经设置了一个cron作业,它从网站获取JSON响应,处理它并将其保存到数据库中。 Cron Job将运行一周以上。

我面临两个问题:

  1. 我希望我的cron作业能够连续运行超过一周(如果需要),但是在2-3天之后,cron作业就会停止。错误日志不显示任何FAILURE。知道为什么cron作业在没有通知的情况下停止。

  2. 我收到一些警告,而我使用file_get_contents获取数据,因为无法打开流:php_network_getaddresses:getaddrinfo failed:/ home /中名称解析暂时失败... 这在大多数情况下有效,但有时我会收到此错误,有人可以告诉我为什么会这样。

  3. 此致 Muthukumar

1 个答案:

答案 0 :(得分:0)

您可以尝试此功能,而不是通常的file_get_contents();

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;
}