Дек 27
2008phpdude Curl beta 0.1! Класс для работы с Curl! Он просто великолепен!
Рубрики: (phpdude Curl) Автор: phpdude 27-12-2008
Теги : curl, php, phpdude, phpdude Curl, phpdude Curl beta, ахуенно, КодЛинч 0.1 beta
парсинг парсинг парсинг … как много в этом слове
выкладываю свою последнюю разработку – класс для работы с курлом
ОН УДОБЕН!
исходный код тут.
http://phpdude.ru/code/IE7o1m
можете ругать, что ОН БОЛЬШОЙ, что он негибкий, что сокеты ахуенны, но мне похуй. я его наконец то написал и это хорошо, ибо хотел написать пару лет оный)
по теме. достоинства:
- поддерживает http cookie сам. понимает domain, path параметры
- короткая настройка ресурса curl. откажись от curl_setopt сейчас!
- лаконичный код.
- методы в большинстве своем возвращают сам объект – множественная настройка посредствам множественных вызовов методов.
- внутрення переменная содержащая информацию о ответе сервера public $curlinfo;
- автоматическая обработка заголовков ответа сервера и дальнейшая работа с ними. легкий доступ к заголовкам. $location = $curl->header(«location»);
думаю что еще много плюсов. я просто покажу пример кода для того, чтобы вы все поняли
$data = array_merge($this->_session['formdata'],$data);
$curl = $this->_session['register_curl'];$curl->init($curl->curlinfo->url,$this->curl_options());
$curl->setopt(«post»,$data)->exec();
не правда ли удобно?
дальнейшие планы – поставить sunversion server + wiki по расшареным мною вещам. есть люди которые заинтересованы в подобных вещах ? если это никому не надо, я не стану терять время
ведь у меня его и так не сильно много.
Всея ПЫХА
adw0rd
Мавр
ГО
Irinax
Ахуенно, хуль
Ну а сокеты все равно ахуенны
курл удобнее
к тому же сокеты или курл – всеголишь транспортный уровень
Решил поюзать твой классег, зачем в serverfriendly() ты переменные объявляешь? А тем более там заголовки назначаешь? Почему бы им свойствами не побыть?
а, бля, нашел return $this->options($options);
прощаю
вино дает о себе знать, пью до сихпор!
Нихера непонятный пример, ты пишешь на отъебись или для людей?))
>исходный код тут.
>http://phpdude.ru/code/IE7o1m
чего, нельзя было сделать ссылкой? епт…
>serverfriendly()
это конечно твое дело, но читабельнее в верблюжей нотации… serverFriendly()
$this->_opts = unserialize(‘a:96:{s:11:»autoreferer»;s:19:»CURLOPT_AUTOREFERER»;s:1
JSON по тебе плачет…
Я очень ценю что почти все методы возвращают объект, однако мог бы немного камментов оставить, а лучше несколько хороших примеров… а то пьянному хер разберешь
Адво, хорош каментами жечь!!!
их все равно никто не читает
адский класс. на разжовывание для людей времени нет. кому надо сами разберутся. мб в будущем напишу + вики сделаю
$this->_opts = unserialize(’a:96:{s:11:”autoreferer”;s:19:”CURLOPT_AUTOREFERER”;s:1
JSON по тебе плачет…
на простом array() многострочном … у меня форматировщик валится
поэтмоу почти всегда пишу так, когда не имеется возможности вынести такие штуки в отдельный файл.
а вообще по теме неплохо вы там накидались. каменты забавно читать))))
Блог увлекательный. Только мне почему-то сложно разобраться – много ссылок, информации. Может написать какой-нибудь путеводитель по сайту для таких новичков как я?
можно было бы и написать, если бы было время
почему используешь iconv, а не mb_convert_encoding?
исторически так сложилось
вот напиши, пожалуйста, статью про свое видение CVS/SVN.
мне нужно в ближайшее время поднять что-то наиболее подходящее для командной работы, чтобы не приходилось ни у кого спрашивать, открыт ли тот или иной файл))) НО, есть очень большое но — это охуеть как взаподло после каждого шага комитить, чтобы посмотреть изменения на dev сервере
я использую локалные версии на программистах + серверную чтобы все пизды получали. сейчас я правда только фриланшу)
но комит и апдейт быстрые операции. свн прикольная вещь. ксв – уг устаревшее. к свну можешь еще поставить Track и будет айс. там списочек изменний весь хорошо хранится + всякие ticket’s можно создавать закрывать обсуждать и тп
у меня на буке вместе с хрю стояла виртуалка дебиана, на ней и писал. всяко удобнее чем от сервера к серверу метаться и тп.
Чувак, это мегакласс!
спасибо огромное, трахался долго чтобы авторизацию на digg.com сделать.
с помощью твоего класса – три строчки.
вау, будем делать прокачку акка, спасибо
прокси через setopt() задавать?
>> прокси через setopt() задавать?
$curl->setopt(«proxy»,»http://ip:3128″) – должно работать
>> Чувак, это мегакласс!
))) не за что
>> спасибо огромное, трахался долго чтобы авторизацию на digg.com сделать.
>> с помощью твоего класса – три строчки.
>> вау, будем делать прокачку акка, спасибо
наконец то кому то пригодился
еще вопрос
если я прокси определяю один раз для класса
последовательно вызывая 3 разных URL
то в последних заголовках прокси уже не вижу – надо определять прокси для каждого из вызываемых URL?
да надо перенастраивать все параметры курла
у меня была идея сделать стандартные для всех вызовов настройки, но увы пока времени недостаточно переписать. ведь и так работает 100% просто немножко неудобно, но всяко удобнее самого курла
тут потестил немного тво
бла, сорвалось
потестил немного твой класс. Через прокси соединение рвется – те некорректное завершение какое то.
если я тупо напишу:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $connect['url']);curl_setopt($ch, CURLOPT_REFERER, ‘http://google.com/‘);
curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; ca; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $connect['proxy']);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$tmp_result = curl_exec($ch);
curl_close($ch);
тело будет получено и никакого разрыва(с)Уральский
в твоем случае идет затык, и хз почему, игрался с таймаутом это ничего не дало.
и еще.
если скрипт(с исп. класса) повесить на крон , то получаем следующее ругательство:
PHP Fatal error: Uncaught exception ‘Exception’ with message ‘CURL ERROR: couldn’t connect to host’ in /home/…/curl.php:339
могу сказать одно
этот класс всего лишь настраивает курл. изза него немогут быть такие прблемы.
$curl->setopt(«timeout»,10)->exec() пробовал?
ага
ну тогда хз почему.
сам понимаю работа через прокси – дело скользкое, потому грешу на херовые прокси и хостинг
>> отому грешу на херовые прокси и хостинг
на это и надо грешить)) на саом деле это и проблема.
«$data = array_merge($this->_session['formdata'],$data);
$curl = $this->_session['register_curl'];
$curl->init($curl->curlinfo->url,$this->curl_options());
$curl->setopt(«post»,$data)->exec();
не правда ли удобно? » – да ни хyя не удобно!