我正在运行以下循环:
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
答案 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);