С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 15/01/08 в 20:55 |
на сокетах понятно как, а можно ли такое проделать с помощью библиотеки curl - считать 500 байт сайта, без учета хэдеров?
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 15/01/08 в 21:05 |
Код: | curl_setopt($c, CURLOPT_RANGE, "0-500"); |
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 15/01/08 в 21:18 |
вот эта функция как-раз и не сработала...
а как точно посмотреть, поддерживает сервер RANGE или нет?
P.S. на сокетах работает
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 15/01/08 в 22:04 |
Сохрани в файл и посмотри если занимает 500 байт... то работает!
|
|
|
|
С нами с 25.06.05
Сообщения: 66
Рейтинг: 62
|
Добавлено: 15/01/08 в 22:44 |
Мне кажется что проще считать весь документ , сделать эксплод в массив, и взять первые пять строк
$dataarr = explode("\n",$data);
взять первые 5 значений массива.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 15/01/08 в 23:33 |
-=Faraon=-: я вижу, что он принимает документ размером 11790, а должен размером 500...
redred: у меня задача немного другая, какраз не надо читать весь документ...
|
|
|
|
С нами с 25.01.07
Сообщения: 257
Рейтинг: 262
|
Добавлено: 16/01/08 в 00:04 |
в самой библиотеке реально можно.. на C
В PHP никак.
|
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 16/01/08 в 00:16 |
я поступал в пыхе следующим образом.
1. курлу передавался RANGE
2. курлу назначалсь функция обработки "входящих данных" curl_setopt(<handle>, CURLOPT_WRITEFUNCTION,<fn>); в которой и смотрелось - достаточно ли имеем, если да - то просим курл (через результат функции) прекратить качать далее. конечно с таким подходом часто получается значительная перекачка ненужных данных, но как простое решение для определенных задач подходит )
|
|
|
|
С нами с 19.10.05
Сообщения: 351
Рейтинг: 755
|
Добавлено: 16/01/08 в 00:42 |
Должно работать... может гдето ошибку допустил!!! у меня работает на версии (libcurl/7.14.0 OpenSSL/0.9.8a zlib/1.2.3)
Может можно обойтись без курла тогда fgets поможет!
|
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 16/01/08 в 00:54 |
-=Faraon=-: к сожалению, это зависит не от версии курла или пыха на стороне читающего, а от стороны отдающего. т.к. не все виды контента можно выдернуть по RANGE. например - таже некешированная страница, генерируемая каким-то скриптом = для нее даже конечный размер и тот не известен. поэтому при любом указании RANGE будет отдан весь контент - конечно не исключаю вариант супер "умных" веб-серверов поступающих иначе ;)
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 16/01/08 в 01:14 |
Heavy писал: |
2. курлу назначалсь функция обработки "входящих данных" curl_setopt(<handle>, CURLOPT_WRITEFUNCTION,<fn>);
|
как-то она кривовато работает, отдает страницу кусками по 1кб...
но уже хоть что-то... спасибо
|
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 16/01/08 в 04:22 |
само собой, не будет же он по одному байту считывать. видимо там определен буффер размером 1 кб.
ты посмотри в сторону CURLOPT_BUFFERSIZE, я не уверен, но возможно это и есть размер этого буффера, поставь поменьше.
|
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 16/01/08 в 11:22 |
крути или не крути, но всеравно на серв придет этот килобайт и больше, хоть ты в функцию может и получишь меньшими порциями. все определяется минимальным размером пакета - и дробить на меньше смысла никакого - т.к. что 5 байт, что 4Кб пройдут одинаково. главная задача же не точно 500байт получить, а не скачать пару мегабайт случайно ))
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 16/01/08 в 12:24 |
а почему не запросить всю страницу и взять с нее нужное число байт ?
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
С нами с 01.03.06
Сообщения: 629
Рейтинг: 620
|
Добавлено: 16/01/08 в 13:08 |
Stek писал: |
а почему не запросить всю страницу и взять с нее нужное число байт ? |
так не всегда это нужно где-то из-за скорости, где-то из-за трафика.
могу встречный вопрос задать - почему бы не загрузить пару тысяч мувиков целиком только для того, что бы прочитать их заголовки ;)
большие объемы, кстати, и на "обычных" страницах встречаются - частенько попадались сайтики со страницами от 1,5метров и до безобразия ))
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 16/01/08 в 14:40 |
вроде бы нельзя так сделать.
Легче на сокетах изобразить.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|