|
|
|
| Ребят помогите пожалуйста! Просто умоляю!
В общем на одном хостинге стоит мой icq bot, на другом мой жж liveiournal.com нужно сделать так чтобы при приходе команды боту добавления статьи он брал текст статьи из сообщения, брал из конфига логин и пароль через curl делал авторитизацию на liveiournal.com, а потом уже с куками добавлял статью! из ранее полученного текста. Минус всего этого то, что я никогда не работал с curl и куками при открытие сессии... В общем буду рад кто подкинет хотя бы какой-нибудь код, который даст хотя бы представление как это сделать! Заранее благодарен любой помощи!!! | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 11:38)
| | Если интересует, пиши в аську 325459 | |
|
|
|
|
|
|
|
для: Proger
(08.06.2007 в 15:24)
| | ну еслиб не интересовало - не писал бы)
блин аськой щас не пользуюсь... :( если не сложно скинь сюда код) | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 11:38)
| | Прочтите документацию по курлу - там подробно про это написано сам читал | |
|
|
|
|
|
|
|
для: mihdan
(08.06.2007 в 17:53)
| | уфф с курлом разобрался... теперь мучаюсь с оформлением запроса!
Смотрите есть форма ввода пароля, так чтобы войти нужно считать куки
$ch=curl_init ("site.ru");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$headers = explode("\n", ob_get_contents());
ob_end_clean();
for ($i=0; $i<=count($headers); $i++)
{
if (strpos($headers[$i], 'Set-Cookie:') !== FALSE)
{
list($field, $cookie[]) = explode(' ', $headers[$i]);
}
}
|
но никак не могу составить ссылку которая пишет куки, как понимаю нужно составить ссылку вида
http://site.ru/?login=login&pass=pass но никак не могу ето сделать...
слышал про расширение firefox которое показывает заголовки, но не могу найти, кто знает о сием чуде? | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:31)
| | проверку делаю как составлена ссылка самим браузером. | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:31)
| | Зачем Вы мучаете output buffer? Вам CURLOPT_RETURNTRANSFER не хватает?
И еще.
CURLOPT_COOKIEFILE: Имя файла, содержащего данные cookie. Данные могут быть либо в формате Netscape, либо просто HTTP-заголовки. | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 19:39)
| | я с сурлом только сегодня столкнулся...поэтому естественно есть ошибки! если не сложно объясни пожалуйста объясни поподробней.
CURLOPT_RETURNTRANSFER: При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.
|
а про output buffer ничего не нашёл... | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:41)
| | о, я снова могу писать в эту тему о_О
после моего примера и теста доступ был закрыт...
Во вложении пример реги на форуме и загрузка этой темы. (советую не запускать)
На счет кукис и ретурнтрансфер: их можно не извлекать что-ли самому?? | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:41)
| | CURL может не только выводить данные в браузер, но и возвращать их в виде результата работы функции. И даже записывать их в файл.
Читайте http://ru2.php.net/curl_setopt
Непонятно будет - спрашивайте. | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 19:45)
| | я понял! весь день с этой страницей сижу!
на данном этапе нужно получить данные с куками.
Как понял нужно вначале вручную составить ссылку типа http://site.ru/?login=login&pass=pass а потом в мой код её подставить. Но не могу ссылку составить... слишком много аргументов в ссылке. Может ли сайт делать проверку того что заполнял ли пользователь сам поля формы или это сделал при помощи ручного ввода в браузер ссылки вида http://site.ru/?login=login&pass=pass | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:48)
| | >Как понял нужно вначале вручную составить ссылку типа http://site.ru/?login=login&pass=pass а потом в мой код её подставить.
Счего вы так подумали?
Форма у Вас есть, где эти значения вводятся? Как она выглядит? | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 19:51)
| | конечно! есть html страница с ними...плюс в ней есть два скрытых поля... не могу показать ибо сайт только в сетке локальной работает.
на этой странице логин пароль кнопка сабмита и два скрытых поля
и нужно получить ввести туда предварительно выпарсив два скрытых поля, подставить логин и пасс и получить куки! в ручном режиме составляю ссылку и кидаю в браузер он её не ест! | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:53)
| | Открыть исходный текст страницы и скопировать оттуда html-код формы-то вы можете? | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 19:57)
| |
<form action="site.ru/auth">
<input type="hidden" name="url" value="site.ru/user=sddd&pass=test">
<input type="hidden" name="urltwo" value="site.ru/user=sddd&pass=test&sdds=dssds">
Для захода в панель управления нужно авторитизироваться!<br>
<table border=0 cellpadding=0 cellspacing=0><tr>
<td class=t75><b>Имя</b> </td>
td width=60%><input type=text name="Login" value="" ></td>
</tr><tr>
<td><b>Пароль</b> </td>
<td colspan=2 valign=top><table width=100% cellpadding=0 cellspacing=0><tr>
<td width=100%><input type=password name="Password"></td>
<td nowrap> <a href="site.ru" target=_blank>Забыли пароль?</a></td>
</tr></table></td></tr><tr>
<td> </td>
<td ><input type=checkbox name="groupe" value="1">
<label>Группа</label></td>
<td><input type=submit value=" Войти "></td>
</tr>
</table>
</td></tr>
</form>
</table>
|
Да поверьте ссылку я по всем правилам нормально делал.... | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 20:07)
| | Бред у вас там в локалке какой-то .... пароли в прямо в параметрах uri летают... | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 20:24)
| | cогласен!!!
но что поделаешь...
а теоретически если в одной части сайта даётся кука, а в другой смотрится есть ли эта кука и если да то даётся новая кука, то скрипту можно указать взять куку в первом месте, а во втором взять страницу с уже имеющимися куками то тогда мы будем иметь вторые куки? | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 20:25)
| | куки могут иметь разные области видимости, и разные времена жизни.
Лучше честно разбирать и управлять ими независимо. | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 20:38)
| | при помощи программы Naviscope составил ссылку!
осталось её раскодировать) есть ли программы которые могут делать действия противоположные urlencode?
нашёл)
в общем трабл в том что вначале грузится один скрипт а он пересылает ещё в одно место данные для проверки) работаю в поте сил) ещё немного и будет победа!!!!! | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 19:39)
| |
CURLOPT_COOKIEFILE: Имя файла, содержащего данные cookie. Данные могут быть либо в формате Netscape, либо просто HTTP-заголовки.
|
Это потом! вначале их нужно получить :) | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 19:44)
| | нужно, конечно. Получить, разобрать, записать, вытереть.
Они прилетают среди заголовков. | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 11:38)
| | в общем получил куки первого скрипта, теперь нужно с этими куками получить куки с другого скрипта(и будет счастье!)
$ref = 'http://www.xxx.ru/'; // обычно адрес на котором сама форма
$ch=curl_init ("http://www.xxx.ru/");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
for ($i=0; $i<=count($cookie); $i++)
{
curl_setopt($ch, CURLOPT_COOKIE, $cookie[$i]); // шлём куку (куки)
}
ob_start();
curl_exec ($ch);
curl_close ($ch);
$headers = explode("\n", ob_get_contents());
ob_end_clean();
for ($i=0; $i<=count($headers); $i++)
{
if (strpos($headers[$i], 'Set-Cookie:') !== FALSE)
{
list($field, $cookie[]) = explode(' ', $headers[$i]);
}
}
|
Но не получается... помогите ещё раз! наверное всех достал, но сам уже сижу с распухшей головой! | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 21:58)
| | почитайте мое вложение чуть выше ) | |
|
|
|
|
|
|
|
для: Disable
(08.06.2007 в 22:04)
| | большое спасибо, посмотрел.
прошу пожалуйста можешь показать пример как уже имею куки зайти по ссылке и получить от нее новые куки | |
|
|
|
|
|
|
|
для: tricket
(08.06.2007 в 22:27)
| |
<?php
//запрос без куков
$ch=curl_init('http://xxx.xx/xx.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.21 (Windows NT 5.1; U; en)');
curl_setopt($ch,CURLOPT_HEADER,1); //показываем заголовки
$res=curl_exec($ch);
curl_close($ch);
$arr=array();
preg_match_all('|Set-Cookie: ([^\n]+)\n|',$res,$arr); //извлекаем кукисы
echo $res."\n\n"; //печатаем результат первого запроса
//второй запрос со старыми куками
$ch=curl_init('http://xxx.xx/xx.php');
curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.21 (Windows NT 5.1; U; en)');
curl_setopt($ch,CURLOPT_HEADER,1);
//здесь установка "старых" кукис
foreach ($arr[1] as $cookie)
curl_setopt($ch,URLOPT_COOKIE,$cookie);
$res=curl_exec($ch);
curl_close($ch);
$arr=array();
preg_match_all('|Set-Cookie: ([^\n]+)\n|',$res,$arr); //извлекаем "новые" кукисы, они хранятся в массиве $arr[1]
echo $res; //смотрим что вышло
//итд
?>
|
| |
|
|
|
|
|
|
|
для: Disable
(08.06.2007 в 22:37)
| | ОГРОМНЕЙШЕЕ СПАСИБО!!!! | |
|
|
|
|
|
|
|
для: Disable
(08.06.2007 в 22:37)
| | нельзя так с кукисами.
А если там команда "стереть"? | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2007 в 22:57)
| | ну не знаю, на свой if всегда есть elseif :) | |
|
|
|
|
|
|
|
для: Disable
(08.06.2007 в 23:00)
| | ребят там среди заголовков есть надпись
http://site.ru/checkcookie?id=6c0702666b44524f19050219091d031b060 34f6c5150445e010707081b01060a1f5043 405442500201070c1658505d5b174345
таких надписи две! как раз две куки я получить и не могу! | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 11:14)
| | Приводите полный текст отклика с заголовками.
среди заголовков есть надпись - это, извините, детский лепет.
Надписи на заборе бывают. А в заголовке есть поля. Вы же процитировали даже не поле, а некий URI.
http-протокол абсолютно детерминирован. В нем нет каких-либо разночтений, и попытки "примерить на что похоже и втиснуть как придется" здесь не уместны совершенно. | |
|
|
|
|
|
|
|
для: Disable
(08.06.2007 в 23:00)
| | что Вы имели в виду, я не понял.
А на протокол обмена кукисами есть стандарт. RFC-2109 | |
|
|
|
|
 3.3 Кб |
|
|
для: Trianon
(09.06.2007 в 11:30)
| | ща увлёкся курлом и пробую пройти авторитизацию на mail.ru, вот ответ сервера
во вложение | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 11:39)
| | 1. Это не могло быть ответом. В ответе поля заголовка идут каждое с новой строки.
Не путайте ответ сервера, и то, как он (будучи выведен голяком) выглядит в эксплорере.
Смотрите исх.текст html-страницы.
2. Не применяйте версию протокола, которую не знаете. Особенности протокола 1.1 Вы не знаете наверняка. Применяйте версию 1.0 | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 11:48)
| | HTTP/1.1 302 OK
Date: Sat, 09 Jun 2007 07:51:59 GMT
Server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0.7 Ruby/1.6.8 mod_mrim/0.17
Connection: close
Content-Type: text/html
Content-Length: 157
Set-Cookie: mrcu=18DF466A5C1F23683A8B2E3943C2; expires=Tue, 06 Jun 2017 07:51:59 GMT; path=/; domain=.mail.ru
Set-Cookie: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAA AAAAAAAAAAABYGwgcA; expires=Thu, 06 Dec 2007 07:51:59 GMT; path=/; domain=.mail.ru
Set-Cookie: Mpop=1181375519:58517f4371637d5d19050219091d031b060 34f6c5150445e010707081b01060a1f5043 405442500201070c1658505d5b174345:grymza2009@mail.ru:; path=/; domain=.mail.ru
Location: http://win.mail.ru/cgi-bin/checkcookie?id=58517f4371637d5d19050219091d031b060 34f6c5150445e010707081b01060a1f5043 405442500201070c1658505d5b174345
Cache-Control: no-cache,no-store,must-revalidate
Pragma: no-cache
Expires: Fri, 09 Jun 2006 07:51:59 GMT
Last-Modified: Sat, 09 Jun 2007 07:51:59 GMT
вот | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 11:52)
| | Статус 30X - это запрос редиректа.
Вы обязаны выполнить все инструкции Set-Cookie после чего исполнить GET-запрос к документу, URI котрого находится в поле location. | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 11:56)
| | preg_match_all('|Set-Cookie: ([^\n]+)\n|',$res,$arr); //извлекаем кукисы (тут их 2)
preg_match_all('!http\://win\.mail\.ru/cgi\-bin/checkcookie\?id=[^\s]*!',$res,$url); //извлекаем кукисы (тут их 2)
print_r($res);
echo "<p>куки:<p>";
echo $cookie1=$arr[0][0];
echo $cookie2=$arr[0][1];
echo $cookie3=$arr[0][2];
$url=trim($url[0][0]);
echo "<p><p><p>юэрл".$url."<p><p>результат";;
//загрузим эту тему через скрипт
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.21 (Windows NT 5.1; U; en)');
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_REFERER,'http://www.mail.ru/'); //подделываем реферер
curl_setopt($ch,URLOPT_COOKIE,$cookie1); //здесь установка кукис
curl_setopt($ch,URLOPT_COOKIE,$cookie2); //здесь тоже установка кукис
curl_setopt($ch,URLOPT_COOKIE,$cookie3); //здесь тоже установка кукис
$res=curl_exec($ch);
curl_close($ch);
print_r($res);
вот что я сделал...но не правильно... в чём тут ошибка? | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 11:58)
| | Это вопрос к Disable.... я так понимаю, что это его код, или код построенные на базе его прототипа. | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 12:03)
| | да код его...а чисто теоретически ошибок в запросе нету? | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 12:11)
| | Чисто теоретически - помимо того, что с кукисами так не работают - такой код будет работать только с конкретным сервисом, да и то лишь до тех пор, пока его не изменят. | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 12:11)
| | сделал запрос теперь получаю
HTTP/1.1 302 Found
Date: Sat, 09 Jun 2007 08:23:33 GMT
Server: Apache
Location: http://win.mail.ru/cgi-bin/start?back=1
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251
<html>
<head><title>Redirect to http://win.mail.ru/cgi-bin/start?back=1</title></head>
<body><a href="http://win.mail.ru/cgi-bin/start?back=1">http://win.mail.ru/cgi-bin/start?back=1</a></body>
</html>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://win.mail.ru/cgi-bin/start?back=1">here</A>.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at win.mail.ru Port 80</ADDRESS>
</BODY></HTML>
|
теперь также следовать туда? | |
|
|
|
|
|
|
|
для: tricket
(09.06.2007 в 12:24)
| | проследовал!!!
и получил свою почту! супер! всем спасибо!!! | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 11:30)
| | Не пойму, что конкретно я делаю не так? Вроде везде срабатывало :)
curl_setopt($ch,URLOPT_COOKIE,$cookie1); //здесь установка кукис
curl_setopt($ch,URLOPT_COOKIE,$cookie2); //здесь тоже установка кукис
curl_setopt($ch,URLOPT_COOKIE,$cookie3); //здесь тоже установка кукис
посылается последовательность сеткуков в запросе (естественно, надо предварительно смотреть и проверять что посылается). | |
|
|
|
|
|
|
|
для: Disable
(09.06.2007 в 13:01)
| | Я ж уже привел пример. Допустим, сервер с помощью Set-cookie запрашивает удаление кукиса (устанавливая пройденное время устаревания). Ваш скрипт обязан удалить такой кукис из списка активных.
Или второй пример. сервер указывает область видимости для кукиса, ограниченную подкаталогом. Ваш скрипт обязан пересылать кукис лишь при обращении к документам из этого подкаталога. | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 15:47)
| | а, ну это решается в индивидуальном порядке, после подробного анализа пришедших куков
foreach ($arr[1] as $cookie)
curl_setopt($ch,URLOPT_COOKIE,$cookie);
это просто для примера :) | |
|
|
|
|
|
|
|
для: Disable
(09.06.2007 в 15:59)
| | >а, ну это решается в индивидуальном порядке, после подробного анализа пришедших куков
Вот этого анализа я и не увидел.
Если его не делает скрипт, человек с таким анализом может и опоздать.
Далее, конструкция preg_match_all('|Set-Cookie запросто может выдрать строку Set-Cookire из неподобающего контекста.
Например, я передам значение парамерта с такой строкой в поле Location или назову документ таким именем (Content-type) . Ваша конструкция банально загнется. А всё потому, что поля заголовка следует разбирать по стандарту а не абы как.
Собственно, это проблема всех, кто применяет регулярные выражения.
Регулярки хороши, когда нужно быстренько набросать отчет.
Детерминиррованный анализ исходных данных с помощью них обычно не менее сложен, чем прямыми методами.... | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 16:18)
| | Ну я думаю не все так печально, если в запрос к серверу попадет "нежданный" кукис-бред ничего плохого в общем-то не случится, сервер может даже не заметит, а в худшем случаи выдаст bad request..
Хотя и возразить я не могу, разбор что называется "на шару" :) | |
|
|
|
|
|
|
|
для: Disable
(09.06.2007 в 16:29)
| | Если это намеренная подстава, чтобы отловить скриптом реализованный клиент, то результатом будет бан хостинга. | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 16:32)
| | А если так:
1.посылаем пустой запрос (или пост с авторизацией) и получаем заголоки
2.анализируем заголовки в ответе (чтобы клиента не писать визуально)
3.если там нет ничего такого, то снова пункт1
4.извлекаем куки
5.посылаем запрос с куками
? | |
|
|
|
|
|
|
|
для: Disable
(09.06.2007 в 16:39)
| | а если он пришлет еще один редирект?
:) | |
|
|
|
|
|
|
|
для: Trianon
(09.06.2007 в 16:43)
| | Ну также, пока не выйдет результата.
если не забанят (хотя все эти заголовки можно и обычным браузером с плагинами анализировать, чтобы не палиться).
Или клиента писать/искать сразу :) | |
|
|
|
|
|
|
|
для: Disable
(09.06.2007 в 17:00)
| | очень интересна ваша беседа и на руки попалось две программы Naviskope и Inetcrack нужные для этих вещей! ПРоги полный улёт!!!!!!!!!!!!
Теперь вопрос, есть строчки
$Cookie="Cookie: ".$goodcookie[3]."; ".$goodcookie[4]."; ".$goodcookie[0]."; ".$goodcookie[1]."; ".$goodcookie[2];
$host = "site.ru";
$path = "/";
$fp = fsockopen($host,80,$errno,$errstr,30);
if(!$fp) echo"$errstr ($errno)<br />\n";
else{
$headers .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-icq, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$headers .= "Referer: http://site.ru/\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "Proxy-Connection: Keep-Alive\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) )\r\n";
$headers .= "Host: site.ru\r\n";
$headers .= "If-Modified-Since: Tue, 09 Jun 1987 16:46:19 GMT; length=61062\r\n";
$headers .= $Cookie."\r\n";
$headers .= "Connection: Close\r\n\r\n";
echo $headers;
fwrite($fp,$headers);
$head = "";
while($text != "\r\n"){
$text = fgets($fp,128);
$head .= $text;
}
$text = "";
while(!feof($fp)) $text .= fgets($fp,4096);
fclose($fp);
}
echo $text;
|
Это код с которорым у меня работает авторитизация, тоже самое на курле не пашед!!!
Может ли это быть из-за строчек, которые в курле изменить нельзя?
Например:
$headers .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-icq, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "Proxy-Connection: Keep-Alive\r\n";
|
И если да, то есть ли решение проблемы? или отказаться от курла?
P.S. я тут наверное всех за***л тупыми вопросами... | |
|
|
|
|
|
|
|
для: tricket
(10.06.2007 в 09:49)
| | Тут видимо надо отправить вас за документацией (там на русском и понятно)
http://www.php.su/functions/?curl-setopt
вообще, можно посылалать заголовки, заключенные в масив
<?php
$ch = curl_init('http://xxx.xx/xx.xx');
$headers = array("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-icq, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*",
"Accept-Language: ru",
"Proxy-Connection: Keep-Alive");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.21 (Windows NT 5.1; U; en)');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
$res=curl_exec($ch);
curl_close($res);
echo $res;
?>
|
| |
|
|
|
|
|
|
|
для: Disable
(10.06.2007 в 13:28)
| | Разобрался! КУРЛ ОЧЕНЬ КРУТАЯ ВЕЩИЦА!
Кстати а что быстрее получится курл или открыть соединение по сокетам? | |
|
|
|
|
|
|
|
для: tricket
(10.06.2007 в 16:15)
| | cURL тоже открывает сокеты. | |
|
|
|
|
|
|
|
для: Unkind
(10.06.2007 в 16:26)
| | я имею в виду если самому открывать или курл | |
|
|
|
|
|
|
|
для: tricket
(10.06.2007 в 16:31)
| | По идее медленней будет cURL. | |
|
|
|
|
|
|
|
для: Unkind
(10.06.2007 в 16:39)
| | по идее - наоборот.
Компилируемый язык всяко быстрее интерпретируемого.
Хотя в коммуникационных процессах скорость все равно каналом определяется. | |
|
|
|
|
|
|
|
для: Trianon
(10.06.2007 в 21:44)
| | Компилируемый язык всяко быстрее интерпретируемого.
fsockopen - посылаешь текст - получаешь ответ. А cURL все заголовки (многие) формирует сам в зависимости от данных, введенных пользователем. А их надо еще обрабатывать, а в fsockopen - все ложится на программиста. Мне лень проверять, но я уверен, что прав. | |
|
|
|
|
|
|
|
для: Unkind
(10.06.2007 в 21:53)
| | curl ничего сам не делает. Только то, что указал программист. Пользователь вообще не при делах. | |
|
|
|
|
|
|
|
для: Trianon
(10.06.2007 в 22:37)
| | Я и хотел написать программист. Так получилось. | |
|
|
|
|
|
|
|
для: Unkind
(10.06.2007 в 22:44)
| | хм ща времени нет :(
потом обязательно эксперимент проведу что быстрее) | |
|
|
|
|
|
|
|
для: Unkind
(10.06.2007 в 16:39)
| | . | |
|
|
|
|
|
|
|
для: tricket
(10.06.2007 в 16:15)
| | однозначно быстрее будет посылать если заголовок
Connection: Close
я пользуюсь сокетами, потому что курл не на всех хостах ставят. | |
|
|
|
|
|
|
|
для: Disable
(10.06.2007 в 16:43)
| | однозначно быстрее будет посылать если заголовок
Посылать быстрее не будет. Просто этот заголовок означает, что соединение будет порвано сразу же после ответа сервера. | |
|
|
|