array( 'method' => "GET", 'timeout' => '10', 'header' => "Accept-Encoding: deflate, gzip\r\n", ) ))); $meta = stream_get_meta_data($fp); $encoding = ''; $length = 0; foreach ($meta['wrapper_data'] as $i => $header) { if (preg_match('@^Content-Length:\\s*(\\d+)$@i', $header, $m)) { $length = $m[1]; } elseif (preg_match('@^Content-Encoding:\\s*(\\S+)$@i', $header, $m)) { if ($m[1] !== 'identity') { $encoding = $m[1]; } } } $streamContents = stream_get_contents($fp); fclose($fp); if (__FILE__ === realpath($_SERVER['SCRIPT_FILENAME'])) { if ($length != 6) { echo "\nReturned content should be 6 bytes and not HTTP encoded.\n" . "Headers returned by: {$url}\n\n"; var_export($meta['wrapper_data']); echo "\n\n"; } } return array( 'length' => $length ,'encoding' => $encoding ,'bytes' => $streamContents ); } test_environment();