我有一个脚本设置,出于需要的原因获取HTTP响应头,然后使用fsock GET请求的内容。用PHP解析fsockopen的HTTP头文件?
function checkUrl($host,$url,$port) {
$fp = fsockopen($host, $port, $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET $url HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$response = fgets($fp, 1024);
print(substr($response,9,3));
}
fclose($fp);
}
}
我打电话,并得到所有正确的数据回来,如果我只是附和这一切了。但实际上我需要从函数返回的是HTTP STATUS代码。
即404或200或301等
但是上面的代码给出了错误代码肯定,但随后在末端乱码的负载,当我已经限制在3个字符我不理解!
例如
404, 2BM_n: Encype HThe tp-me=srcsrclanstaPre> lanmg=[0][1][2][3][4][5][6][7][8][9][10[11[12 swt.i> ypeeleamiize#99eco#66ade#33izeine#CCize { #66izeeig tmardespath=th=th=th=th=th=th=spardeolordeignign bocol widwidwid col bler> td Sorabl> e> rdeolordespath=th=th= bo spardeoloe="lanSen>
这使我相信我的回答实际上比单纯的字符串更复杂吗?对头文件有特别的要求,或者我误解了fgets的工作原理?任何帮助非常感谢
你是完全正确的,bozo在我的角度思考:)重要的是整个页面被提取像一个浏览器将获取它,以便它被正确编译,因此我想我需要处理整个文件。 – Seer 2012-02-20 12:31:46