由于项目要求,需要利用php做一个获取远程页面html状态码的功能,用来判断远程页面是否可以访问,就类似那种html页面状态码检测工具一样。整理了一下代码,贴出来。有需要的可以拿去用哦。
php获取远程页面的html状态码,有两种方法。一种是用了php的内置函数 get_headers(),一种是用了 curl 方法。
php获取html状态码的方法
方法一:
'; $arr1 = get_headers('http://www.feiniaomy.com'); echo $arr1[0]; echo '
'; $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的状态码。
方法二:
返回结果:
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