php:达到重定向限制

时间:2015-10-11 15:50:11

标签: php cross-domain file-get-contents

我正在运行以下循环:

void sortArray(int array[], int size)
{
  int item;
  int dst = 0;
  int src = 0;

  // collect all non-zero elements
  while (src < size) {
    if (item = array[src++]) {
      array[dst++] = item;
    }
  }

  // fill the rest with zeroes
  while (dst < size) { 
    array[dst++] = 0;
  }
}

基本上,我正在运行一个从json文件获取数据的cronjob(每一分钟,30次)。我收到的文件正在自动更新。当没有数据时它是空的,如果有数据,它就有数据..

所以基本上当文件为空时我会收到此错误:

for ($i=0; $i < 30; $i++) {
    sleep(2);
    $content = file_get_contents('http://www.oref.org.il/WarningMessages/Alert/alerts.json?v=1444528825');
}

这是可以理解的,但问题是,有时候,我得到了这个错误:

PHP Warning:  file_get_contents(http://www.oref.org.il/WarningMessages/Alert/alerts.json?v=1444534443): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found

我搜索了它,但我没有找到任何出现第二个错误的原因。我能做什么? 是否有更聪明的方法来编写此脚本或避免收到错误?

错误日志示例:

PHP Warning:  file_get_contents(http://www.oref.org.il/WarningMessages/Alert/alerts.json?v=1444534451): failed to open stream: Redirection limit reached, aborting in /home/dupdates/domains/dupdates.com/public_html/systems/history/script.php on line 60

1 个答案:

答案 0 :(得分:0)

我用curl代替:

<?php
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, 'http://www.oref.org.il/WarningMessages/Alert/alerts.json?v=1'); 

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
        curl_setopt($ch, CURLOPT_TIMEOUT, '3');
        $content = curl_exec($ch);
        curl_close($ch);