note 68698 deleted from function.http-parse-headers by sobak

From: Date: Sun, 04 Dec 2016 07:22:15 +0000
Subject: note 68698 deleted from function.http-parse-headers by sobak
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-208062@lists.php.net to get a copy of this message
Note Submitter: luigi dot sexpistols at gmail dot com ---- If you don't have access to the PECL library, you can use this code to parse headers contained in strings. Note that it's probably not as robust as the PECL version, as it only parses if the headers are separated by newlines (\n). This isn't a problem in most cases, though, as the standard suggests to use \r\n as the delimiter for headers. HTTP response code is put into 'status'. Any suggestions welcome! <? function http_parse_headers($headers=false){ if($headers === false){ return false; } $headers = str_replace("\r","",$headers); $headers = explode("\n",$headers); foreach($headers as $value){ $header = explode(": ",$value); if($header[0] && !$header[1]){ $headerdata['status'] = $header[0]; } elseif($header[0] && $header[1]){ $headerdata[$header[0]] = $header[1]; } } return $headerdata; } $headers = "HTTP/1.1 200 OK\r\n Date: Tue, 08 Aug 2006 05:32:01 GMT\r\n X-Powered-By: PHP/4.4.3-dev\r\n Data 1: Value for Data 1\r\n Data 2: Value for Data 2\r\n Connection: close\r\n Content-Type: text/html\r\n"; http_parse_headers($headers); // OUTPUT: array(7) { ["status"]=> string(15) "HTTP/1.1 200 OK" ["Date"]=> string(29) "Tue, 08 Aug 2006 05:32:01 GMT" ["X-Powered-By"]=> string(13) "PHP/4.4.3-dev" ["Data 1"]=> string(16) "Value for Data 1" ["Data 2"]=> string(16) "Value for Data 2" ["Connection"]=> string(5) "close" ["Content-Type"]=> string(9) "text/html" } ?>

« previous php.notes (#208062) next »