|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-03-03 13:23 UTC] chentie at livedoor dot cn
[2006-03-03 16:18 UTC] mike@php.net
[2006-03-04 01:48 UTC] bjori@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 06:00:01 2025 UTC |
Description: ------------ get_headers("http://bugs.php.net/welcometochina.php") the result is like this: Warning: get_headers (http://bugs.php.net/welcometochina.php): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found but i think it should be like this: HTTP/1.1 404 Not Found Content-Length: 1635 Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Fri, 03 Mar 2006 11:30:47 GMT Connection: close and other http status code such as 403 i hate to touch you in others method,here is my code for that problem: function get_headers($url,$format=0) { $url=parse_url($url); if (empty($url["path"])) { $url["path"]="/"; } print_r($url); $end = "\r\n\r\n"; $fp = fsockopen($url['host'], (empty($url['port'])?80:$url['port']), $errno, $errstr, 30); if ($fp) { $out = "GET {$url["path"]} HTTP/1.1\r\n"; $out .= "Host: ".$url['host']."\r\n"; $out .= "Connection: Close\r\n\r\n"; $var = ''; fwrite($fp, $out); while (!feof($fp)) { $var.=fgets($fp, 1280); if(strpos($var,$end)) break; } print $var; fclose($fp); $var=preg_replace("/\r\n\r\n.*\$/",'',$var); $var=explode("\r\n",$var); if($format) { foreach($var as $i) { if(preg_match('/^([a-zA-Z -]+): +(.*)$/',$i,$parts)) $v[$parts[1]]=$parts[2]; } return $v; } else return $var; } } here i didn't conside the loction of code 301,because i think it's not the true URI ,just return the 301 response is OK at last, sorry for my english,welcome to china 2008! ;-p