国产视频app由于項目要求,需要利用php做一個獲取遠程頁面html狀態碼的功能,用來判斷遠程頁面是否可以訪問,就類似那種HTML頁面狀態碼檢測工具一樣。整理了一下代碼,貼出來。有需要的可以拿去用哦。

国产视频appphp獲取遠程頁面的html狀態碼,有兩種方法。一種是用了php的內置函數 get_headers(),一種是用了 curl 方法。

php獲取html狀態碼的方法

方法一:

<?php
$arr = get_headers('http://feiniaomy.com');
echo $arr[0];
echo '<br/>';
$arr1 = get_headers('http://xswdd.cn');
echo $arr1[0];
echo '<br/>';
$arr2 = get_headers('http://xswdd.cn');
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('http://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