Чтоб понять в каком месте он не срабатывает как ожидается, надо после каждого этапа выводить отладочную информацию ручками.
Первый этап - получение информации из внешнего источника. Ну вот и выводите в файл результат:
$cur = curl_init();
if($cur)
fwrite($log, date('c').' Curl инициализировали');
else
{
fwrite($log, date('c').' Сurl не получилось инициализировать');
exit(1);
}
if(curl_setopt($cur, CURLOPT_URL, $url)
fwrite($log, date('c').' Curl задали URL');
else
{
fwrite($log, date('c').' Сurl не получилось задать URL ['.curl_error($cur).']');
exit(2);
}
//Примерно так дальше.
Кста: по ошибке выхода сразу будет видно где вылетело. Собственно, для этого и изобретали.