Curl, как ограничить скачивание по размеру.
1.
Валерий (25.04.2011 / 14:58)
Нужно, чтоб по ссылке скрипт получал кой какую информацию, но нужно ограничить эту информацию по размеру.
Нужно чтоб скрипт не качал по url больше например 10кб. Пусть 10кб скачает и обрывает соединение.
Как такое сделать?
Если нельзя с курлом, как сделать без курла?
2.
ZipeR (25.04.2011 / 15:35)
curl_close() закроет соединение
http://www.php.ru/manual/function.mktime/function.curl-close.html
3.
Валерий (25.04.2011 / 15:45)
спасибо кэп, а как узнать что его пора закрывать? подозреваю что нужно использовать CURLOPT_PROGRESSFUNCTION или CURLOPT_READFUNCTION, но разобраться с этим не могу
4.
ZipeR (25.04.2011 / 16:14)
CURLOPT_READFUNCTION используй. как закрыть я написал
5.
Валерий (26.04.2011 / 14:47)
Сделал через CURLOPT_PROGRESSFUNCTION получилось убого, но работает. А что делает CURLOPT_READFUNCTION и как им пользоваться, я так и не понял.
6.
ZipeR (26.04.2011 / 15:22)
Короче я вкурил твою тему(касается скачки), пробуй с опцией CURLOPT_RANGE
curl_setopt($ch, CURLOPT_RANGE,"1-2000"); //первые 2000 байтов
может не поддерживаться сервером, с которого качаешь.
Глянуть бы твоё произведение
7.
Валерий (26.04.2011 / 20:18)
нее, это не катит. Нужно чтоб не зависимо от того, поддерживает там что то сервер или нет..
чё за произведение?
8.
Саня (26.04.2011 / 23:45)
Получай сначала данные файла не скачивая его, а только смотря заголовки
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) и подставить условие для скачивания по размеру
9.
Валерий (27.04.2011 / 10:35)
А если там не файл, а просто большая страница, которая генерируется и отдаёт контент находу через flush(), там явно нет никакой информации о размере.
10.
Саня (27.04.2011 / 12:17)
Тьфу. Ты так и пиши хочу то не знаю что
11.
Валерий (27.04.2011 / 13:37)
я всё правильно написал.. и уже всё сделал давно.. в 5ом посте же написал. Тему крою
URL:
https://visavi.net/topics/21014