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

PHP, cURL, Denwer - проблема

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

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 02/12/07 в 15:59       Ответить с цитатойцитата 

Поставил себе недавно Денвер с PHP5.

Обновил версию PHP до 5.2.5. Раскомментировал cURL в php.ini

Возникла проблема. В файл результат работы (т.е. загруженную страницу) писать не хочет. Пробую вывести в окно браузера -
выдаёт бредятину, типа вот такой:

Оффтопик: mаz,╨Рl, ╖П©}jН╢В╥gиет@ш)пIЩ$DУ╚]Hб жП╦├Шc├p╝ЖSХ╔
яZmв0{ЁLN9и╢ZЕ┤с▓┬%Щ�&
#9524;╧uЗФ]▀╡┴z┘bьZ═wч⌡
й:SГН"S(╦Ё[сЧ@zxY Ы╞jng═К▐,4ъ@хX&#956
7;


Бредятины такой много и при каждом запуске она разная.

Не могу понять, в чём дело. icon_sad.gif Погуглить тоже не получается, т.к. отсутствует хоть какой-то текст или признак ошибки.

Может кто-то стакливался с таким ? Подскажите, куда копать.

Спасибо заранее.

з.ы. Проверил хедеры - всё работает нормально. Сервер отвечает 200.

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

0
 



С нами с 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 ()
Ссылка на сообщениеДобавлено: 02/12/07 в 16:04       Ответить с цитатойцитата 

попробуй так:
Код:

<?
if(extension_loaded('curl'))print "Ok";
else print "Off";
?>

5
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 02/12/07 в 16:06       Ответить с цитатойцитата 

"Ok" :/

В phpinfo() curl есть, сервер запрашишваемый тоже отвечает. Т.е. оно есть, но, почему-то работает некорректно icon_sad.gif

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

0
 



С нами с 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 ()
Ссылка на сообщениеДобавлено: 02/12/07 в 16:13       Ответить с цитатойцитата 

у меня была подобная проблема очень давно... не помню точно, как решил... попробуй заменить библиотеку php_curl.dll с оф сайта
или рнр поставить полную версию с оф сайт для винды

6
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 02/12/07 в 16:16       Ответить с цитатойцитата 

ibiz писал:
у меня была подобная проблема очень давно... не помню точно, как решил... попробуй заменить библиотеку php_curl.dll с оф сайта
или рнр поставить полную версию с оф сайт для винды


Спасибо, буду трахаться icon_smile.gif

Со старым денвером всё работало замечательно, а тут - на тебе icon_sad.gif

Пошёл пробовать...

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

0
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 02/12/07 в 18:43       Ответить с цитатойцитата 

Ура! Разобрался!

Проблема, как оказалось, была совсем не в cURLе icon_smile.gif

В погоне за "эмулированием настоящего сёрфера" хедер имел вот такой вид:

Код:
# standard browser header
$this->header = array(
"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
"Accept-Language: en-us,en;q=0.5",
"Accept-Encoding: gzip,deflate",
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Connection: keep-alive",
"Keep-Alive: 300",
"User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/2.0.0.6"
);


Вся проблема заключалась в строке: "Accept-Encoding: gzip,deflate".
Совершенно случайно попал на сайт, который этот gzip не поддерживал и получил нормальный результат. Сейчас, если убрать эту строку - работает со всеми сайтами практически.

Как научить curl обрабатывать этот gzip - понятия не имею; да оно и не нужно на данный момент icon_smile.gif

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

0
 



С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950


Передовик Master-X (01.01.2008)
Ссылка на сообщениеДобавлено: 02/12/07 в 21:45       Ответить с цитатойцитата 

Есть вариант читать encoding заголовок и если сервер вернул gzip самому пропускать через zlib функции которых есть у php.
Но можно попробовать способ лучьше.
curl_setopt($session,CURLOPT_ENCODING,"");
Начиная с curl 7.10 должно работать.
PS в ручную почти никогда не стоит оформлять заголовок. для этого есть curl_setopt.

8
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 03/12/07 в 03:49       Ответить с цитатойцитата 

Ооо, Sha, спасибо огромное! icon_smile.gif

Вот моя версия curl, но я не уверен, какая будет на устанавливаемом сервере (в принципе, мне нужна универсальность, т.к. оное приложение будет на всяких серверах ставиться, думаю):

libcurl/7.16.0 OpenSSL/0.9.8d zlib/1.2.3


Я немного обнаглею и спрошу у тебя два вопроса, а точнее примера:

1. Есть ли у тебя код, как через setopt ставить хедер ? У меня сначала делается массив, а потом

curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header);

Честно говоря, я думал, что это - единственный возможный вариант, а о твоём даже не слышал, т.к. учусь только. Если есть пример - приведи пожалуйста.

2. То же самое, только касается этого самого zlib'a. Нету ли у тебя куска готового, как с ним работать ?

Если есть - спасибо. Если нет - тоже спасибо, подучил! icon_smile.gif

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

0
 



С нами с 11.06.03
Сообщения: 1266
Рейтинг: 950


Передовик Master-X (01.01.2008)
Ссылка на сообщениеДобавлено: 03/12/07 в 14:18       Ответить с цитатойцитата 

Adulter писал:
Я немного обнаглею и спрошу у тебя два вопроса, а точнее примера:

1. Есть ли у тебя код, как через setopt ставить хедер ? У меня сначала делается массив, а потом

curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header);

Честно говоря, я думал, что это - единственный возможный вариант, а о твоём даже не слышал, т.к. учусь только. Если есть пример - приведи пожалуйста.

Смотря какой хедер ? Вообще ставить хедеры как ты плохо поскольку библиотека CURL может дописывать свои и не отслеживает твои. С Accept-Encoding самый переносимый вариант имхо вообще не указывать его в своих хедерах. В крайнем случае будешь получать непакованные тела. Но если curl сам отправляет "Accept-Encoding: gzip", то покрайней мере он сам же будет "готов" его раскодировать.
PS как щас помню CURL посылает Accept-Encoding: zlib сам если откомпилирован с опцией zlib.
PPS кстати в ответе сервера присутствовал заголовок Content-Encoding ? мож поэтому curl не был в курсах ?
Цитата:

2. То же самое, только касается этого самого zlib'a. Нету ли у тебя куска готового, как с ним работать ?

Если есть - спасибо. Если нет - тоже спасибо, подучил! icon_smile.gif

Так в документации по PHP пример есть. Смотри функции zlib (там же и deflate есть). Другого кода у меня нет не занимался этим.

8
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 03/12/07 в 16:36       Ответить с цитатойцитата 

Sha писал:
Смотря какой хедер ? Вообще ставить хедеры как ты плохо поскольку библиотека CURL может дописывать свои и не отслеживает твои. С Accept-Encoding самый переносимый вариант имхо вообще не указывать его в своих хедерах. В крайнем случае будешь получать непакованные тела. Но если curl сам отправляет "Accept-Encoding: gzip", то покрайней мере он сам же будет "готов" его раскодировать.
PS как щас помню CURL посылает Accept-Encoding: zlib сам если откомпилирован с опцией zlib.
PPS кстати в ответе сервера присутствовал заголовок Content-Encoding ? мож поэтому curl не был в курсах ?


Я не помню, присутствовал ли, но я пробовал на yahoo и google, а там, думаю, сервера настроены правильно. icon_smile.gif

Просто не нужно было отсылать этот accept-encoding: gzip, что я собственно и сделал.


Sha писал:
Так в документации по PHP пример есть. Смотри функции zlib (там же и deflate есть). Другого кода у меня нет не занимался этим.


Ок, поищу. Сэньку ещё раз. ;)

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

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

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


Перейти:  



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

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

Опросы

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



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