
18.04.2007, 22:51
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
С нами:
10552646
Репутация:
1292
|
|
МДА, ещё с первого поста можно было понять, что сокетом он уже умеет пользовапться и ему не нужно учиться им пользоваться второй раз, ему нужно пропарсить куки.
Код:
<?
$a_cookie = array();
ParseCookie('HTTP/1.0 302 Found
Date: Tue, 17 Apr 2007 18:23:23 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
Set-Cookie: PHPSESSID=dbad9cfe26fa3aa839312951e7053c4d; path=/; domain=.site.com
Set-Cookie: loginname=usver; path=/; domain=.site.com
Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; domain=.site.com
location: http://site.com/authloggedin
Content-Length: 0
nnCoection: close
Content-Type: text/html; charset=UTF-8
RemovedHdr: Keep-Alive', $a_cookie);
ParseCookie('HTTP/1.0 302 Found
Date: Tue, 17 Apr 2007 18:23:23 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
Set-Cookie: PHPSESSID=2f83a67a61ef83594528c117c25a7da3
Content-Length: 0
nnCoection: close
Content-Type: text/html; charset=UTF-8
RemovedHdr: Keep-Alive', $a_cookie);
$cookie = array();
foreach($a_cookie as $param => $value)
{
$cookie[] = "$param=$value";
}
echo '<pre>Cookie: '.implode('; ', $cookie).'</pre>';
# *************************************************
function ParseCookie($text, &$cookie)
{
preg_match_all('/Set-Cookie:\s*(\S[^\r\n]*)\s*[\r\n]/sU', $text, $matches, PREG_SET_ORDER);
foreach($matches as $cur)
{
$elements = preg_split('/\s*;\s*/', $cur[1]);
foreach($elements as $element)
{
list($param, $value) = preg_split('/\s*=\s*/', $element);
$cookie[$param] = $value;
}
}
}
?>
Эту функцию можно вызывать после получения каждой страници, так как они могут добавлять новые переменные или заменять старые.
[Great:] ОМФГ, Ну и форматирование=\\\
Последний раз редактировалось _Great_; 18.04.2007 в 23:13..
|
|
|