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 PermanentlyHTTP/1.1 301 Moved PermanentlyHTTP/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