首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 使用 cURL 判斷網頁 404 狀態的實現方法與最佳實踐

     編輯:PHP 綜合知識

核心實現代碼

function chkurl($url) {
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 10); // 連接超時 10 秒
    curl_exec($handle);
    
    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    curl_close($handle); // 必須在獲取資訊後關閉
    
    return $httpCode !== 404;
}

// 使用示例
$url = "https://www.jb51.net/asdasd.html";
echo chkurl($url) ? "存在" : "不存在"; // 輸出:不存在

關鍵參數解析

選項作用
CURLOPT_RETURNTRANSFER將響應體作為字符串返回而非直接輸出
CURLOPT_CONNECTTIMEOUT設置連接階段超時秒數,防止長時間阻塞
CURLINFO_HTTP_CODE獲取最後一次請求的 HTTP 狀態碼

進階優化建議

  1. HEAD 請求替代 GET:僅需狀態碼時,設置 CURLOPT_NOBODY => true 發送 HEAD 請求,節省帶寬與響應時間
  2. 跟隨重定向:添加 CURLOPT_FOLLOWLOCATION => true 自動處理 301/302 跳轉,獲取最終狀態碼
  3. SSL 證書驗證:生產環境建議開啟 CURLOPT_SSL_VERIFYPEER => true 並配置 CA 證書路徑
  4. 並發檢測:大量 URL 檢測時使用 curl_multi_* 系列函數實現並發請求

常見 HTTP 狀態碼速查

  • 200:成功
  • 301/302:重定向
  • 403:禁止訪問
  • 404:不存在
  • 500/502/503:服務端錯誤

完整對照表可參考:HTTP 狀態碼大全

輔助工具推薦

總結

cURL 配合 CURLINFO_HTTP_CODE 是 PHP 端判斷頁面可用性的標準方案。實際項目中建議封裝為服務類,統一異常處理、重試策略、日誌記錄,提升穩健性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved