PHP檢測給定url是否是404頁面的方法

2020-07-16 10:06:04

需求描述:

檢測給定url是否是404頁面。

方式一:

使用file_get_contents函數,可以讀取web中的網頁或者檔案。如果遇到404頁面,則會返回false,否則返回相應的網頁內容。

使用該函數有兩點需要注意:

1、file_get_contents在讀取不存在的頁面時,會報一個warning,所以最好對這裡的警告進行遮蔽操作。

2、file_get_contents預設會讀取頁面的所有內容,然後再返回。為了提交讀取速度,我們可以限制唯讀取10個位元組就返回。

7bdab8f4f7d53fe7c5d71f1f324abad.png

<?php
$res = @file_get_contents("http://www.baidu.com",null,null,0,10);
if($res){
  echo $res;
}else{
  echo "404";
}

方式二:

我們要判斷該頁面是否是404頁面,這個可以通過網頁返回的狀態碼來判斷。

使用該方法在頁面404的時候並不會報警告。因為我們只需要狀態碼,所以我們不需要讀取網頁的內容,可以通過設定CURLOPT_NOBODY引數,不讀取網頁內容,來縮短程式執行的時間。

<?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視訊教學

以上就是PHP檢測給定url是否是404頁面的方法的詳細內容,更多請關注TW511.COM其它相關文章!