本文實(shí)例講述了php簡(jiǎn)單檢測(cè)404頁(yè)面的方法。分享給大家供大家參考,具體如下:
需求描述:
檢測(cè)給定的url是否是404頁(yè)面。
方式一:
使用file_get_contents函數(shù),可以讀取web中的網(wǎng)頁(yè)或者文件。
如果遇到404頁(yè)面,則會(huì)返回false,否則返回相應(yīng)的網(wǎng)頁(yè)內(nèi)容。
使用該函數(shù)有兩點(diǎn)需要注意:
1.file_get_contents在讀取不存在的頁(yè)面時(shí),會(huì)報(bào)一個(gè)warning,所以最好對(duì)這里的警告進(jìn)行屏蔽操作。
2.file_get_contents默認(rèn)會(huì)讀取頁(yè)面的所有內(nèi)容,然后再返回。為了提交讀取速度,我們可以限制只讀取10個(gè)字節(jié)就返回。

?php
$res = @file_get_contents("http://www.baidu.com",null,null,0,10);
if($res){
echo $res;
}else{
echo "404";
}
方式二:
我們要判斷該頁(yè)面是否是404頁(yè)面,這個(gè)可以通過(guò)網(wǎng)頁(yè)返回的狀態(tài)碼來(lái)判斷。
使用該方法在頁(yè)面404的時(shí)候并不會(huì)報(bào)警告。
因?yàn)槲覀冎恍枰獱顟B(tài)碼,所以我們不需要讀取網(wǎng)頁(yè)的內(nèi)容,可以通過(guò)設(shè)置CURLOPT_NOBODY參數(shù),不讀取網(wǎng)頁(yè)內(nèi)容,來(lái)縮短程序運(yùn)行的時(shí)間。
?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;
}
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php socket用法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《PHP網(wǎng)絡(luò)編程技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- thinkPHP5框架設(shè)置404、403等http狀態(tài)頁(yè)面的方法
- php使用curl判斷網(wǎng)頁(yè)404(不存在)的方法
- thinkphp框架下404頁(yè)面設(shè)置 僅三步
- ThinkPHP 404頁(yè)面的設(shè)置方法
- ThinkPHP訪問(wèn)不存在的模塊跳轉(zhuǎn)到404頁(yè)面的方法
- 用php來(lái)改寫(xiě)404錯(cuò)誤頁(yè)讓你的頁(yè)面更友好
- php 定義404頁(yè)面的實(shí)現(xiàn)代碼
- php 404錯(cuò)誤頁(yè)面實(shí)現(xiàn)代碼
- PHP使用Apache的偽靜態(tài)功能實(shí)現(xiàn)“網(wǎng)頁(yè)404時(shí)跳轉(zhuǎn)指定頁(yè)面