note 74810 deleted from function.http-parse-cookie by sobak
| From: | sobak@php.net | Date: | Sun, 04 Dec 2016 07:21:42 +0000 |
| Subject: | note 74810 deleted from function.http-parse-cookie by sobak | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-208058@lists.php.net to get a copy of this message | ||
Note Submitter: tobsn at php dot net
----
alternative:
<?php
function cookie_parse( $header ) {
$cookies = array();
foreach( $header as $line ) {
if( preg_match( '/^Set-Cookie: /i', $line ) ) {
$line = preg_replace( '/^Set-Cookie: /i', '', trim(
$line ) );
$csplit = explode( ';', $line );
$cdata = array();
foreach( $csplit as $data ) {
$cinfo = explode( '=', $data );
$cinfo[0] = trim( $cinfo[0] );
if( $cinfo[0] == 'expires' ) $cinfo[1] = strtotime(
$cinfo[1] );
if( $cinfo[0] == 'secure' ) $cinfo[1] = "true";
if( in_array( $cinfo[0], array( 'domain',
'expires', 'path', 'secure', 'comment' ) ) ) {
$cdata[trim( $cinfo[0] )] = $cinfo[1];
}
else {
$cdata['value']['key'] = $cinfo[0];
$cdata['value']['value'] = $cinfo[1];
}
}
$cookies[] = $cdata;
}
}
return $cookies;
}
function cookie_build( $data ) {
if( is_array( $data ) ) {
$cookie = '';
foreach( $data as $d ) {
$cookie[] =
$d['value']['key'].'='.$d['value']['value'];
}
if( count( $cookie ) > 0 ) {
return trim( implode( '; ', $cookie ) );
}
}
return false;
}
?>
(http://www.seo-blackhat.com/article/the-cookie-backer-php.html)