PHP

Скачать часть файла с докачкой с использованием Curl

Следующий пример позволяет скачать некоторую часть из файла с сервера.
<?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";
?>
Добавлено: 23 Августа 2013 10:01:55 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...