Янв 12
2009phpdude Curl v0.1.1 beta
Рубрики: (phpdude Curl) Автор: phpdude 12-01-2009
Теги : curl, curl_exec, curl_init, phpdude Curl, phpdude Curl beta
думаю что вы уже знакомы с ним, если нет, то можете поискать по тегу
обновленный код вы можете просмотреть/скачать тут http://phpdude.ru/code/I9cxZl
фикс – удалена зависимость от моего стороннего класса в функции serverfriendly().
прошу любить и жаловать меня
Всея ПЫХА
adw0rd
Мавр
ГО
Irinax
очень вовремя) люблю и жалую
там статью только что выложил с «небольшим мануалом»
охуеть, ну ты как угадал.)) а я буквально сегодня загорелся написать для личного пользования грабилку новостей из вконтакта и транслировать их к себе в google reader. вспомнил про твой класс, да еще этот мануал)) почти все сделано за меня)
ну мануал для нюбов написал, но класс ахуенный. нет слов.
и + скажу по секрету. авторизоваться на контакт не надо
там достаточно 2 или 3 куки слать, не помню точно. email + md5(password).
а статью написал про контакт – ниче в голову не пришло)
сколько куков им слать, есть на выбор два варианта:
либо один remixsid,
либо remixmid+remixemail+remixpass
а можно все сразу.
в этом классе встретил ошибку в addCookie:
$this->_cookies[$name] =$data;
меняем на
$this->_cookies[$name] = array(‘value’=>$data);
следовательно надо изменить addCookies:
foreach ($cookies as $name=>$data) $this->addCookie($name, $data);
еще, когда пробовал добавить куки через setopt(‘cookie’, array(0=>1)) вылезали две-три ошибки, разбираться не стал)
тут ошибки нет
$array['data'] = «test»;
$array['path'] = «/»;
$array['domain'] = «.fuck.go»;
addCookie(«name»,$array);
сколько куков им слать, есть на выбор два варианта:
либо один remixsid,
либо remixmid+remixemail+remixpass
а можно все сразу.
слал второй вариант
по идее надо было бы if(!is_array … добавить … но класс и так большой, да и когда я его дописывал, уже с ума сходил))))) да и время поджимало, надо было начинать его использовать
ok. да
Сдавай, сука, ключи от своего блога! Теперь я phpdude бля! Нехуй писать ногами на прелестном языке! И марш исправлять ошибки в своем ёбаном блять классе!
Да.. И где блять мой АйФон, пиздобол!!!???)))
новые баги)). только что парсил рсс и наткнулся на такие вещи:
1) followlocation можно сделать по умолчанию 1
2) encoding можно сделать по умолчанию «gzip, deflate»
3) предположим, что url, который мы скармливаем в init, не ведет напрямую к необходимому файлу, тогда по этому адресу нам придет два заголовка: location и content-type (windows-1251).
Он автоматом попрется по location и получит еще один заголовок content-type (utf-8), тогда строчка
$contenttype = is_array($contenttype) ? $contenttype[0] : $contenttype;
выберет первый заголовок (windows-1251), а нужен второй
4) на след строчке выражение
if(preg_match(‘#text/html\s*;\s*charset\s*=\s*([^\s]+)#i’,$contenttype,$reg))
слишком конкретизировано, и не находит для text/xml
странный чел завелся. да хуй с ним)
1) followlocation можно сделать по умолчанию 1
2) encoding можно сделать по умолчанию “gzip, deflate”
3) предположим, что url, который мы скармливаем в init, не ведет напрямую к необходимому файлу, тогда по этому адресу нам придет два заголовка: location и content-type (windows-1251).
Он автоматом попрется по location и получит еще один заголовок content-type (utf-8), тогда строчка
$contenttype = is_array($contenttype) ? $contenttype[0] : $contenttype;
выберет первый заголовок (windows-1251), а нужен второй
4) на след строчке выражение
if(preg_match(’#text/html\s*;\s*charset\s*=\s*([^\s]+)#i’,$contenttype,$reg))
слишком конкретизировано, и не находит для text/xml
1) никогда так не делаю по религиозным причинам)
надо проверить.
2) да, я уже об этом подумал, только так же подумал не будет ли он возвращать мне бинарные данные(конвертнет ли курл в текст автоматом), не уверен
3)надо сделать прегматчолл + array_pop. тогда будет похуй
4) писалось под хтмл. под хмл надо бы тоже адаптировать.
по теме.
но надо время … интересно вот то, интересно ли это кому то вообще)
думаю развить нечто вида sourceforge.com только русское. начать соответственно с пхп
1) просто я оценил, и в большинстве случаев опция followlocation нужна
2) посчастливилось сегодня проверить
3) и 4) конечно же сделал, сообщаю, чтобы никто больше не сталкивался и не искал причину, при выключенном декодинге найти ее еще тяжелее
а я его знаю)))
>> а я его знаю)))
я без воскл знака пишу имя пользователя)
1) просто я оценил, и в большинстве случаев опция followlocation нужна
надо будет сделать по целовечески + понимаю что хорошо бы вику накидать.
2) посчастливилось сегодня проверить
и как? получил строку? почти уверен что получишь строку … хз, просто уверен)
3) и 4) конечно же сделал, сообщаю, чтобы никто больше не
сталкивался и не искал причину, при выключенном декодинге найти ее еще тяжелее
что ты имеешь ввиду под выкл декодинге? пора класть на свн я чувствую
> и как? получил строку? почти уверен что получишь строку … хз, просто уверен)
gzip decode был выключен — был бинарник, включил — получил строку. мне попался подляный рсс канал, причем из фидбернера. хренли мне самому определять нужно декодировать или нет?) керл сам все сделает, стоит только опцию включить. и лучше включать, когда список рсс контролируешь не сам, а пополняет его, например, дубина заказчик
> что ты имеешь ввиду под выкл декодинге? пора класть на свн я чувствую
ну это как раз про gzip decode, curl мне возвращал бинарник и при этом я пытался починить авто-определение кодировки))))))
жесть!)))
Так ли уж необходимы эти преобразования:
$postfields = is_array($this->_options['post']) ? http_build_query($this->_options['post'],»",»&») : $this->_options['post'];
curl_setopt($this->_ch, CURLOPT_CRLF, 1); ?
На них крошатся multipart/form-data, и картинку, например, через POST уже не пихнешь.
ЗЫ: И когда уже возьмешься за свои Серверные полезные штуки? Уже больше месяца как объявил про них
так я взялся, но никто ничего не ответил, я забил пока никто не отзовется уже есть идеи по рефакторингу и фьючингу классов описанных на блоге, но если это все не востребовано, мне тоже не сильно надо))
а преобразования да, нужны конечно, ведь иногда хочется строку послать а иногда массив
Да востребовано, просто пока слишком мало всего, да и мануал с контактом даже не совсем как для нубов
Мне кажется, если будет движение и будет немного подробнее всё – интерес пойдет в геометрической прогрессии
А так, я месяц рефрешил все страницы, пока сам тут не написал
А по поводу
$postfields = is_array($this->_options['post']) ? http_build_query($this->_options['post'],”»,”&”) : $this->_options['post'];
и
curl_setopt($this->_ch, CURLOPT_CRLF, 1);
Вроде как CURL ведь сам разбирается, где строка, а где массив?, да даже не в этом дело, а в том что «http_build_query» и «CURLOPT_CRLF, 1″ режут multipart/form-data, и в результате этих преобразование не пошлешь файлы через POST – это уже не очень хорошо.
“http_build_query” и “CURLOPT_CRLF, 1″ режут multipart/form-data
вот это может быть
я же говорю просто стоит им заняться, но мне хватило этого функционала на время написания этого класса. класс жутко полезный
поэтмоу хочется чтобы тупо люди о нем узнали))) потому что ненавижу всю эту хуйню с сокетами и рав датой
http://clear.phpdude.ru/
тут же написано все про свн и трак, там полный набор
Класс оч крутой) спасибо!)
вам спасибо))
Порядок!