У меня проблема с загрузкой файлов через PHP.Загрузка файлов через PHP
Самое смешное, что я не могу отследить проблему. Код работает хорошо для некоторых сайтов и не хорош с другими. Это петля на PHP, которая загружает файлы резервных копий с веб-сайтов (есть задержка со сном перед запросами).
Почему я не могу отследить проблему? Потому что, когда я запускаю вручную код, он работает (загружает файл). И когда он запускается CRON, иногда он загружает файл, иногда он НЕ загружает файл (загружает только две пустые новые строки).
Загрузка с curl (я также пробовал с другим кодом с fsockopen и fread).
У кого-нибудь есть идея, как я могу это решить?
Заголовки удаляются с помощью CURL, устанавливая правильный вариант.
function fetch_url($url) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_TIMEOUT, 20);
if ($cookiejar != '') {
curl_setopt($c, CURLOPT_COOKIEJAR, $cookiejar);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookiejar);
}
curl_setopt($c, CURLOPT_HEADER , false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST , false);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($c, CURLOPT_FOLLOWLOCATION , true);
curl_setopt($c, CURLOPT_AUTOREFERER , true);
curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
$con = curl_exec($c);
curl_close($c);
return $con;
}
echo fetch_url('http://www.example.com/zip.zip');
Хорошо. Большое спасибо. – BetterMan21
Вопрос безопасности: у веб-серверов, содержащих эти резервные копии, есть способ предоставить вам доступ как законного пользователя - или не имеет значения, будет ли Joe Public загружать копию этих резервных копий? – halfer
Вы должны использовать curl_error и записывать его в txt-файл или что-то в этом роде, тогда вы сможете проследить, почему он не работает, может быть выделено множество причин (слишком много файлов в основном из-за 2 ГБ, неправильных заголовков, развратов или неполных данных, gzip кодировки или таймауты) ... регистрировать каждый запрос на завивки, а также устанавливать некоторую безопасность на место –