Curl, как ограничить скачивание по размеру.

Печать RSS
244

В
Автор
Чатланин
0
Нужно, чтоб по ссылке скрипт получал кой какую информацию, но нужно ограничить эту информацию по размеру.
Нужно чтоб скрипт не качал по url больше например 10кб. Пусть 10кб скачает и обрывает соединение.
Как такое сделать?

Если нельзя с курлом, как сделать без курла?
Изменил: Валерий (25.04.2011 / 14:59)

[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
curl_close() закроет соединение
http://www.php.ru/manual/function.mktime/function.curl-close.html
В
Автор
Чатланин
0
спасибо кэп, а как узнать что его пора закрывать? подозреваю что нужно использовать CURLOPT_PROGRESSFUNCTION или CURLOPT_READFUNCTION, но разобраться с этим не могу

[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
CURLOPT_READFUNCTION используй. как закрыть я написал
В
Автор
Чатланин
0
Сделал через CURLOPT_PROGRESSFUNCTION получилось убого, но работает. А что делает CURLOPT_READFUNCTION и как им пользоваться, я так и не понял.

[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
Короче я вкурил твою тему(касается скачки), пробуй с опцией CURLOPT_RANGE
curl_setopt($ch, CURLOPT_RANGE,"1-2000"); //первые 2000 байтов
может не поддерживаться сервером, с которого качаешь.
Глянуть бы твоё произведение hello
Изменил: ZipeR (26.04.2011 / 15:24)
В
Автор
Чатланин
0
нее, это не катит. Нужно чтоб не зависимо от того, поддерживает там что то сервер или нет..
чё за произведение?
С

Малиновые штаны
0
Получай сначала данные файла не скачивая его, а только смотря заголовки

ob_start();
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
$ok = curl_exec($ch);
curl_close($ch);
$head = ob_get_contents();
ob_end_clean();

Потом узнаешь размер файла (вытащить регуляркой из $head) и подставить условие для скачивания по размеру
В
Автор
Чатланин
0
А если там не файл, а просто большая страница, которая генерируется и отдаёт контент находу через flush(), там явно нет никакой информации о размере.
С

Малиновые штаны
0
Тьфу. Ты так и пиши хочу то не знаю что D
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск