Следующий пример позволяет скачать некоторую часть из файла с сервера.
<?php
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";
?>Скопировать в буфер
© Copyright 2008-2012 by KDG