#學志#[php]驗證鏈接有效性

<?php
function checkTheLink($url){
  $ch = curl_init(); 
  $timeout = 10; 
  curl_setopt ($ch, CURLOPT_URL, $url); 
  curl_setopt($ch, CURLOPT_HEADER, 1); 
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
  $contents = curl_exec($ch); 
  if($contents !== false){ 
    $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
    if($statusCode < 400){ 
     return 1;
    } else{ 
     return 0; 
    }
  } else{
   return 0;
  }
  curl_close( $ch );
}
?>


問題:
1、無法檢驗https的有效性;
解決:進行https請求
function http($url, $data='', $method='GET'){   
    $curl = curl_init(); // 啓動一個CURL會話  
    curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址  
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 對認證證書來源的檢查  
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密算法是否存在  
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器  
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉  
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer  
    if($method=='POST'){  
        curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求  
        if ($data != ''){  
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包  
        }  
    }  
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環  
    curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回  
    $tmpInfo = curl_exec($curl); // 執行操作  
    curl_close($curl); // 關閉CURL會話  
    return $tmpInfo; // 返回數據  
} 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章