需求描述:
檢測給定url是否是404頁面。
方式一:
使用file_get_contents
函數(shù),可以讀取web中的網(wǎng)頁或者文件。如果遇到404頁面,則會返回false,否則返回相應的網(wǎng)頁內(nèi)容。
使用該函數(shù)有兩點需要注意:
1、file_get_contents
在讀取不存在的頁面時,會報一個warning,所以最好對這里的警告進行屏蔽操作。
2、file_get_contents
默認會讀取頁面的所有內(nèi)容,然后再返回。為了提交讀取速度,我們可以限制只讀取10個字節(jié)就返回。
<?php $res = @file_get_contents("http://www.baidu.com",null,null,0,10); if($res){ echo $res; }else{ echo "404"; }
方式二:
我們要判斷該頁面是否是404頁面,這個可以通過網(wǎng)頁返回的狀態(tài)碼來判斷。
使用該方法在頁面404的時候并不會報警告。因為我們只需要狀態(tài)碼,所以我們不需要讀取網(wǎng)頁的內(nèi)容,可以通過設置CURLOPT_NOBODY
參數(shù),不讀取網(wǎng)頁內(nèi)容,來縮短程序運行的時間。
<?php $ch = curl_init("http://www.baidu.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); $res = curl_exec($ch); $code = curl_getinfo($ch,CURLINFO_HTTP_CODE); if($code == 404){ echo "404"; }else{ echo $code; }
推薦教程:PHP視頻教程