Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Скачать часть файла с докачкой с использованием Curl
Следующий пример позволяет скачать с сервера некоторую часть из файла.
function isAcceptRangeSupported($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
$content = trim(strtolower($content));
$headers = explode("\n", $content);
foreach ($headers as $val) {
$val = trim($val);
return ((substr($val, 0, 13) == "accept-ranges") && (strpos($val, "bytes")!==false) );
}
return false;
}
function Read($url, $position, $size) {
$hdr = array("Range: bytes=".$position."-".($position + $size));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $hdr);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
$file="http://htmlweb.ru/download/test.rar";
if (isAcceptRangeSupported($file)) {
echo "Докачка поддерживается сервером<br>\n";
// читаем из файла с адреса 1Кб блок размером 512байт
echo Read("$file, 1024, 512);
} else
echo "Докачка НЕ поддерживается сервером<br>\n";
.
Прокомментировать/Отблагодарить