Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : HTTP : http_parse_cookie

http_parse_cookie

Parse HTTP cookie (PECL pecl_http:0.20.0-1.5.5)
object http_parse_cookie ( string cookie [, int flags [, array allowed_extras]] )

Parses HTTP cookies like sent in a response into a struct.

Parameters

cookie

string containing the value of a Set-Cookie response header

flags

parse flags (HTTP_COOKIE_PARSE_RAW)

allowed_extras

array containing recognized extra keys; by default all unknown keys will be treated as cookie names

Return Values

Returns a stdClass object on success or FALSE on failure.

Examples

Example 889. Using http_parse_cookie()

<?php
print_r
(http_parse_cookie("foo=bar; bar=baz; path=/; domain=example.com; comment=; secure", 0, array("comment")));
?>

The above example will output:

stdClass Object
(
 [cookies] => Array
 (
   [foo] => bar
   [bar] => baz
 )

 [extras] => Array
 (
   [comment] =>
 )

 [flags] => 16
 [expires] => 0
 [path] => /
 [domain] => example.com
)


Code Examples / Notes » http_parse_cookie

tobsn

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)


Change Language


Follow Navioo On Twitter
Installation
Configuration
Resources
Constants
Request Options
HttpMessage
HttpMessage::__construct
HttpMessage::factory
HttpMessage::fromEnv
HttpMessage::fromString
HttpMessage::toString
HttpMessage::toMessageTypeObject
HttpMessage::guessContentType
HttpMessage::detach
HttpMessage::prepend
HttpMessage::reverse
HttpMessage::send
HttpMessage::getParentMessage
HttpMessage::getType
HttpMessage::setType
HttpMessage::getHttpVersion
HttpMessage::setHttpVersion
HttpMessage::getHeaders
HttpMessage::getHeader
HttpMessage::addHeaders
HttpMessage::setHeaders
HttpMessage::getBody
HttpMessage::setBody
HttpMessage::getRequestMethod
HttpMessage::setRequestMethod
HttpMessage::getRequestUrl
HttpMessage::setRequestUrl
HttpMessage::getResponseCode
HttpMessage::setResponseCode
HttpMessage::getResponseStatus
HttpMessage::setResponseStatus
HttpQueryString
HttpQueryString::__construct
HttpQueryString::singleton
HttpQueryString::get
HttpQueryString::mod
HttpQueryString::set
HttpQueryString::toArray
HttpQueryString::toString
HttpQueryString::xlate
HttpDeflateStream
HttpDeflateStream::factory
HttpDeflateStream::__construct
HttpDeflateStream::update
HttpDeflateStream::flush
HttpDeflateStream::finish
HttpInflateStream
HttpInflateStream::factory
HttpInflateStream::__construct
HttpInflateStream::update
HttpInflateStream::flush
HttpInflateStream::finish
HttpRequest
HttpRequest::addCookies
HttpRequest::addHeaders
HttpRequest::addPostFields
HttpRequest::addPostFile
HttpRequest::addPutData
HttpRequest::addQueryData
HttpRequest::addRawPostData
HttpRequest::addSslOptions
HttpRequest::clearHistory
HttpRequest::__construct
HttpRequest::enableCookies
HttpRequest::getContentType
HttpRequest::getCookies
HttpRequest::getHeaders
HttpRequest::getHistory
HttpRequest::getMethod
HttpRequest::getOptions
HttpRequest::getPostFields
HttpRequest::getPostFiles
HttpRequest::getPutData
HttpRequest::getPutFile
HttpRequest::getQueryData
HttpRequest::getRawPostData
HttpRequest::getRawRequestMessage
HttpRequest::getRawResponseMessage
HttpRequest::getRequestMessage
HttpRequest::getResponseBody
HttpRequest::getResponseCode
HttpRequest::getResponseCookies
HttpRequest::getResponseData
HttpRequest::getResponseHeader
HttpRequest::getResponseInfo
HttpRequest::getResponseMessage
HttpRequest::getResponseStatus
HttpRequest::getSslOptions
HttpRequest::getUrl
HttpRequest::resetCookies
HttpRequest::send
HttpRequest::setContentType
HttpRequest::setCookies
HttpRequest::setHeaders
HttpRequest::setMethod
HttpRequest::setOptions
HttpRequest::setPostFields
HttpRequest::setPostFiles
HttpRequest::setPutData
HttpRequest::setPutFile
HttpRequest::setQueryData
HttpRequest::setRawPostData
HttpRequest::setSslOptions
HttpRequest::setUrl
HttpRequestPool
HttpRequestPool::attach
HttpRequestPool::__construct
HttpRequestPool::__destruct
HttpRequestPool::detach
HttpRequestPool::getAttachedRequests
HttpRequestPool::getFinishedRequests
HttpRequestPool::reset
HttpRequestPool::send
HttpRequestPool::socketPerform
HttpRequestPool::socketSelect
HttpResponse
HttpResponse::capture
HttpResponse::getBufferSize
HttpResponse::getCacheControl
HttpResponse::getCache
HttpResponse::getContentDisposition
HttpResponse::getContentType
HttpResponse::getData
HttpResponse::getETag
HttpResponse::getFile
HttpResponse::getGzip
HttpResponse::getHeader
HttpResponse::getLastModified
HttpResponse::getStream
HttpResponse::getThrottleDelay
HttpResponse::getRequestBody
HttpResponse::getRequestBodyStream
HttpResponse::getRequestHeaders
HttpResponse::guessContentType
HttpResponse::redirect
HttpResponse::send
HttpResponse::setBufferSize
HttpResponse::setCacheControl
HttpResponse::setCache
HttpResponse::setContentDisposition
HttpResponse::setContentType
HttpResponse::setData
HttpResponse::setETag
HttpResponse::setFile
HttpResponse::setGzip
HttpResponse::setHeader
HttpResponse::setLastModified
HttpResponse::setStream
HttpResponse::setThrottleDelay
HttpResponse::status
http_cache_etag
http_cache_last_modified
http_chunked_decode
http_deflate
http_inflate
http_get_request_body_stream
http_get_request_body
http_get_request_headers
http_date
http_support
http_match_etag
http_match_modified
http_match_request_header
http_build_cookie
http_negotiate_charset
http_negotiate_content_type
http_negotiate_language
ob_deflatehandler
ob_etaghandler
ob_inflatehandler
http_parse_cookie
http_parse_headers
http_parse_message
http_parse_params
http_persistent_handles_count
http_persistent_handles_ident
http_persistent_handles_clean
http_get
http_head
http_post_data
http_post_fields
http_put_data
http_put_file
http_put_stream
http_request_method_exists
http_request_method_name
http_request_method_register
http_request_method_unregister
http_request
http_request_body_encode
http_redirect
http_send_content_disposition
http_send_content_type
http_send_data
http_send_file
http_send_last_modified
http_send_status
http_send_stream
http_throttle
http_build_str
http_build_url
eXTReMe Tracker