Реклама на сайте Advertise with us

Как на Curl считать первые пять строк?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 15/01/08 в 20:55       Ответить с цитатойцитата 

на сокетах понятно как, а можно ли такое проделать с помощью библиотеки curl - считать 500 байт сайта, без учета хэдеров?

0
 



С нами с 19.10.05
Сообщения: 351
Рейтинг: 755

Ссылка на сообщениеДобавлено: 15/01/08 в 21:05       Ответить с цитатойцитата 

Код:
curl_setopt($c, CURLOPT_RANGE, "0-500");

8
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 15/01/08 в 21:18       Ответить с цитатойцитата 

вот эта функция как-раз и не сработала...
а как точно посмотреть, поддерживает сервер RANGE или нет?
P.S. на сокетах работает

0
 



С нами с 19.10.05
Сообщения: 351
Рейтинг: 755

Ссылка на сообщениеДобавлено: 15/01/08 в 22:04       Ответить с цитатойцитата 

Сохрани в файл и посмотри если занимает 500 байт... то работает!

8
 



С нами с 25.06.05
Сообщения: 66
Рейтинг: 62

Ссылка на сообщениеДобавлено: 15/01/08 в 22:44       Ответить с цитатойцитата 

Мне кажется что проще считать весь документ , сделать эксплод в массив, и взять первые пять строк



$dataarr = explode("\n",$data);

взять первые 5 значений массива.

8
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 15/01/08 в 23:33       Ответить с цитатойцитата 

-=Faraon=-: я вижу, что он принимает документ размером 11790, а должен размером 500...
redred: у меня задача немного другая, какраз не надо читать весь документ...

0
 



С нами с 25.01.07
Сообщения: 257
Рейтинг: 262

Ссылка на сообщениеДобавлено: 16/01/08 в 00:04       Ответить с цитатойцитата 

в самой библиотеке реально можно.. на C
В PHP никак.

8
 



С нами с 01.03.06
Сообщения: 629
Рейтинг: 620

Ссылка на сообщениеДобавлено: 16/01/08 в 00:16       Ответить с цитатойцитата 

я поступал в пыхе следующим образом.
1. курлу передавался RANGE
2. курлу назначалсь функция обработки "входящих данных" curl_setopt(<handle>, CURLOPT_WRITEFUNCTION,<fn>); в которой и смотрелось - достаточно ли имеем, если да - то просим курл (через результат функции) прекратить качать далее. конечно с таким подходом часто получается значительная перекачка ненужных данных, но как простое решение для определенных задач подходит icon_smile.gif)

8
 



С нами с 19.10.05
Сообщения: 351
Рейтинг: 755

Ссылка на сообщениеДобавлено: 16/01/08 в 00:42       Ответить с цитатойцитата 

Должно работать... может гдето ошибку допустил!!! у меня работает на версии (libcurl/7.14.0 OpenSSL/0.9.8a zlib/1.2.3)
Может можно обойтись без курла тогда fgets поможет!

0
 



С нами с 01.03.06
Сообщения: 629
Рейтинг: 620

Ссылка на сообщениеДобавлено: 16/01/08 в 00:54       Ответить с цитатойцитата 

-=Faraon=-: к сожалению, это зависит не от версии курла или пыха на стороне читающего, а от стороны отдающего. т.к. не все виды контента можно выдернуть по RANGE. например - таже некешированная страница, генерируемая каким-то скриптом = для нее даже конечный размер и тот не известен. поэтому при любом указании RANGE будет отдан весь контент - конечно не исключаю вариант супер "умных" веб-серверов поступающих иначе ;)

8
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 16/01/08 в 01:14       Ответить с цитатойцитата 

Heavy писал:

2. курлу назначалсь функция обработки "входящих данных" curl_setopt(<handle>, CURLOPT_WRITEFUNCTION,<fn>);


как-то она кривовато работает, отдает страницу кусками по 1кб...
но уже хоть что-то... спасибо

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 16/01/08 в 04:22       Ответить с цитатойцитата 

само собой, не будет же он по одному байту считывать. видимо там определен буффер размером 1 кб.
ты посмотри в сторону CURLOPT_BUFFERSIZE, я не уверен, но возможно это и есть размер этого буффера, поставь поменьше.

0
 



С нами с 01.03.06
Сообщения: 629
Рейтинг: 620

Ссылка на сообщениеДобавлено: 16/01/08 в 11:22       Ответить с цитатойцитата 


крути или не крути, но всеравно на серв придет этот килобайт и больше, хоть ты в функцию может и получишь меньшими порциями. все определяется минимальным размером пакета - и дробить на меньше смысла никакого - т.к. что 5 байт, что 4Кб пройдут одинаково. главная задача же не точно 500байт получить, а не скачать пару мегабайт случайно icon_smile.gif))

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 16/01/08 в 12:24       Ответить с цитатойцитата 

а почему не запросить всю страницу и взять с нее нужное число байт ?

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 



С нами с 01.03.06
Сообщения: 629
Рейтинг: 620

Ссылка на сообщениеДобавлено: 16/01/08 в 13:08       Ответить с цитатойцитата 

Stek писал:

а почему не запросить всю страницу и взять с нее нужное число байт ?

так не всегда это нужно icon_smile.gif где-то из-за скорости, где-то из-за трафика.
могу встречный вопрос задать - почему бы не загрузить пару тысяч мувиков целиком только для того, что бы прочитать их заголовки ;)
большие объемы, кстати, и на "обычных" страницах встречаются - частенько попадались сайтики со страницами от 1,5метров и до безобразия icon_smile.gif))

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 16/01/08 в 14:40       Ответить с цитатойцитата 

вроде бы нельзя так сделать.
Легче на сокетах изобразить.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »