产品搜索



     


 


php如何查看网页状态码


方法1,这是网上最多的方法,但是并不靠谱。

function GetHttpStatusCode($url){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);//获取内容url
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );// 连接加速
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));// 连接加速
curl_setopt($curl,CURLOPT_ENCODING, 'gzip');// 连接加速
curl_setopt($curl,CURLOPT_HEADER,1);//获取http头信息
curl_setopt($curl,CURLOPT_NOBODY,1);//不返回html的body信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//返回数据流,不直接输出
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 3);//连接时间
curl_setopt($curl,CURLOPT_TIMEOUT,4); //超时时长,单位秒
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //支持https
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//支持https
curl_exec($curl);
$rtn= curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
return  $rtn;
}
$url='网页地址';
echo GetHttpStatusCode($url); 

方法2,关闭校验+允许跳转,能得到准确结果

//关闭https证书校验
stream_context_set_default( array(
    'ssl' => array(
        'verify_host' => false,
        'verify_peer' => false,
        'verify_peer_name' => false,
    ),
));

function getHTTPResponseStatusCode($url)
{
    $status = null;

    $headers = @get_headers($url, 1);

    if ($headers !== false && isset($headers['Location'])) {
        $url = $headers['Location'];
 }


    $headers = @get_headers($url, 1);

    if (is_array($headers)) {
        $status = substr($headers[0], 9, 3);
    }


    return $status;
}

$url = '网页地址';
$statusCode = getHTTPResponseStatusCode($url);
echo $statusCode;

 


前一篇:php创建文件并写入内容

下一篇:获取页面重定向地址的php代码