由于项目要求,需要操作php做一个获取长途页面html状态码的成果,用来判定长途页面是否可以会见,就雷同那种HTML页面状态码检测东西一样。整理了一下代码,贴出来。有需要的可以拿去用哦。
php获取长途页面的html状态码,有两种要领。一种是用了php的内置函数 get_headers(),一种是用了 curl 要领。
php获取html状态码的要领要领一:
<?php $arr = get_headers(''); echo $arr[0]; echo '<br/>'; $arr1 = get_headers(''); 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); ?>返回功效:
200PS:此种要领代码有些长,假如要同时判定多个长途页面的 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(''); echo GetHttpCode('');返回功效: