Get Content-Type from cURL
Try this:-
<?php$image_url = "http://p.twimg.com/AW2-vIUCAAE_1FN.png"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_URL, $image_url); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt ($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); $content = curl_exec ($ch); $contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); echo $contentType; echo "<br/>"; curl_close ($ch); echo "<pre>"; print_r($content); ?>
Before you call curl_close()
, call curl_getinfo()
:
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);echo $contentType;
Alternatively, if you want a parsed array of the head, here is a quick and dirty solution (WARNING: this does nothing to validate that the supplied string actually is an HTTP response, use with caution):
<?php function parse_http_head ($str) { $result = array(); // Split into lines $lines = explode("\r\n", $str); // Handle response line $line = explode(' ', array_shift($lines), 3); $version = explode('/', $line[0]); $result['version'] = (float) $version[1]; $result['code'] = (int) $line[1]; $result['text'] = $line[2]; // Parse headers $result['headers'] = array(); while ($line = trim(array_shift($lines))) { list($name, $val) = explode(':', $line, 2); $name = strtolower(trim($name)); // Header names are case-insensitive, so convert them all to lower case so we can easily use isset() if (isset($result['headers'][$name])) { // Some headers (like Set-Cookie:) may appear more than once, so convert them to an array if necessary $result['headers'][$name] = (array) $result['headers'][$name]; $result['headers'][$name][] = trim($val); } else { $result['headers'][$name] = trim($val); } } return $result; } // $content comes from your code above $parsed = parse_http_head($content); print_r($parsed);/* Output:Array( [version] => 1.1 [code] => 200 [text] => OK [headers] => Array ( [server] => nginx [x-peep-host] => den2twapi014 [last-modified] => Mon, 15 Aug 2011 03:41:50 GMT [etag] => "7283847-dbb8-4aa830b1dabf0" [accept-ranges] => bytes [content-length] => 56248 [cache-control] => public, max-age=21600 [expires] => Wed, 28 Mar 2012 15:53:57 GMT [content-type] => image/png [x-cdn] => AKAM [date] => Wed, 28 Mar 2012 09:53:57 GMT [connection] => keep-alive ))*/