AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Скачать часть файла с докачкой с использованием 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";

.

© Copyright 2008- by KDG



Rambler's Top100