diff options
author | Markus Birth <[email protected]> | 2013-04-10 00:59:48 +0200 |
---|---|---|
committer | Markus Birth <[email protected]> | 2013-04-10 00:59:48 +0200 |
commit | ef39be2b8877939efb9167e785152489888b2310 (patch) | |
tree | 4cd4198a875db4c44e8662115a74208681447cc2 /include/functions.php | |
parent | 3a8d756ce18ad8ad0b1f37bead4786c34c67ca53 (diff) |
Added propagation of $fetch_last_content_type for curl- and file_get_contents-calls
Diffstat (limited to 'include/functions.php')
-rw-r--r-- | include/functions.php | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/include/functions.php b/include/functions.php index ddb719507..4ac4e0968 100644 --- a/include/functions.php +++ b/include/functions.php @@ -7,6 +7,7 @@ $fetch_last_error = false; $fetch_last_error_code = false; + $fetch_last_content_type = false; $pluginhost = false; function __autoload($class) { @@ -317,6 +318,7 @@ global $fetch_last_error; global $fetch_last_error_code; + global $fetch_last_content_type; $url = str_replace(' ', '%20', $url); @@ -367,11 +369,11 @@ } $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - $content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); + $fetch_last_content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); $fetch_last_error_code = $http_code; - if ($http_code != 200 || $type && strpos($content_type, "$type") === false) { + if ($http_code != 200 || $type && strpos($fetch_last_content_type, "$type") === false) { if (curl_errno($ch) != 0) { $fetch_last_error = curl_errno($ch) . " " . curl_error($ch); } else { @@ -399,6 +401,15 @@ $data = @file_get_contents($url); + $fetch_last_content_type = false; // reset if no type was sent from server + foreach ($http_response_header as $h) { + if (substr(strtolower($h), 0, 13) == 'content-type:') { + $fetch_last_content_type = substr($h, 14); + // don't abort here b/c there might be more than one + // e.g. if we were being redirected -- last one is the right one + } + } + if (!$data && function_exists('error_get_last')) { $error = error_get_last(); $fetch_last_error = $error["message"]; |