php获取http头部请求状态信息

php获取http头部请求状态信息

使用curl来实现, curl需要在php.ini中设置启用,打开php.ini,找到:extension=php_curl.dll 去掉前面的注释。
$curl = curl_init();
$url = 'http://www.111cn.net';
curl_setopt($curl, CURLOPT_URL, $url); // URL
curl_setopt($curl, CURLOPT_HEADER, 1); // Header
curl_setopt($curl,CURLOPT_NOBODY,true); //Body不要
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
echo curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);

或者直接使用get_headers函数

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头
<?php
if(!function_exists('get_headers')){
    function get_headers($url,$format=0){
        $url=parse_url($url);
        $end="\r\n\r\n";
        $fp=fsockopen($url['host'],(empty($url['port'])?80:$url['port']),$errno,$errstr,30);
        if($fp){
            $out="GET / 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;
            }
            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;
            }
        }
    }
}

print_r(get_headers('http://www.111cn.net'));

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值