php获取远程页面html状态码的方法

大家快瞧那结冰的湖水,春风一吹冰都融化了,河里的小鱼都游出海面,在湖水中自由的游来游去,多可爱的小鱼啊!多么欢快的小鱼啊!真是让人深深的为它那可爱的摸样着迷。春风一吹过那枯黄的小草身边时,小草突然边了摸样,它从原来的枯黄变成了嫩绿,慢慢地小草从嫩绿变成了鲜绿渐渐地越变越绿,绿的让人难以相信那是小草。啊!小草我为你的样子感到是个奇迹。

由于项目要求,需要利用php做一个获取远程页面html状态码的功能,用来判断远程页面是否可以访问,就类似那种HTML页面状态码检测工具一样。整理了一下代码,贴出来。有需要的可以拿去用哦。

php获取远程页面的html状态码,有两种方法。一种是用了php的内置函数 get_headers(),一种是用了 curl 方法。

php获取html状态码的方法

方法一:

<?php
$arr = get_headers('http://feiniaomy.com');
echo $arr[0];
echo '<br/>';
$arr1 = get_headers('http://www.feiniaomy.com');
echo $arr1[0];
echo '<br/>';
$arr2 = get_headers('https://www.feiniaomy.com');
echo $arr2[0];
?>

输出结果:

HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
HTTP/1.1 200 OK

注:

由于测试网址(本博客url) HTTP 协议都301到了 HTTPS 协议的 www 二级域名上,所以前两次会输出html的301状态码,最后一次是直接请求的 HTTPS 协议的地址,直接返回 HTML 200的状态码。

方法二:

<?php
$ch = curl_init('https://www.baidu.com');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_exec($ch);
$httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 
curl_close($ch);
?>

返回结果:

200

PS:此种方法代码有些长,如果要同时判断多个远程页面的 HTML 状态码,则需要书写大量的重复代码,我们可以将它封装成一个函数,直接用即可

函数代码:

function GetHttpCode($url){
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_exec($ch);
    $httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 
    curl_close($ch);
    return $httpcode;
}

函数调用:

echo GetHttpCode('http://www.baidu.com');
echo GetHttpCode('http://feiniaomy.com');

返回结果:

200  301

本文php获取远程页面html状态码的方法到此结束。你相信你行,你就活力无穷;你认为你自已不行,就会精神萎靡。小编再次感谢大家对我们的支持!