欢迎!我白天是个邮递员,晚上就是个有抱负的演员。这是我的网站。我住在天朝的帝都,有条叫做Jack的狗。
有一个项目需要检测网站HTTP状态码来判断,我的站长站使用get_headers函数检查状态,apache环境下状态为200,但用Nginx它给了我 301状态。
所以很明显get_headers在某些情况下不兼容,那么我们只能使用兼容性更高的curl 方法了,参考代码如下:
$url = 'https://www.wdzzz.com';$ch = curl_init($url);curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);curl_exec($ch);$info = curl_getinfo($ch);curl_close($ch);var_dump($info);
我收到的 var_dump 输出:
array(26) { ["url"]=> string(61) "https://www.google.co.uk/?gws_rd=cr&ei=fIaOUsflOqnG0QXy74DYDg "["content_type"]=> string(24) "text/html; charset=UTF-8"[ "http_code"]=> int(200) ["header_size"]=> int(2462) ["request_size"]=> int(493) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(2) ["total_time"]=> float(0.286363) ["namelookup_time"]=> float(7.1E-5) ["connect_time"] => float (0.011754)[“预传输时间”]=> float (0.082954)[“大小上传”]=> float (0)[“大小下载”]=> float (119772)[“速度下载”]=> float (418252) ["speed_upload"]=> float(0) ["download_content_length"]=> float(262) ["upload_content_length"]=> float(0) ["starttransfer_time"]=> float(0.156201) ["redirect_time"]= > float (0.076769)[“certinfo”]=>数组(0){}[“primary_ip”]=>字符串(14)“173.194.34.183”[“primary_port”]=> int(443)[“local_ip”] => string(12) "192.168.0.15"["local_port"]=> int(54606) ["redirect_url"]=> string(0) ""}
完美解决了Nginx不支持get_headers函数。
