中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

php中curl類常用方法封裝和詳解

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

curl對于PHP開發(fā)這來說是經(jīng)常用到的一個類. 在抓取遠程文件或是內(nèi)容的時候就更常用了. 不過原生態(tài)的curl類比較復雜, 尤其對于新手來說,很多參數(shù)很容易讓人頭暈,現(xiàn)在好了. 這個類是封裝了幾個常用的curl函數(shù). 可以實現(xiàn)抓取遠程文件,模擬提交數(shù)據(jù)等功能.

/* 
* 來源: http://www.xuehuwang.com/ 
* 作者: 雪狐博客 
* 類用途: 實現(xiàn)抓取原創(chuàng)內(nèi)容 
*/
class CURL  
 {    
 var $cookie_file;  // 設置Cookie文件保存路徑及文件名   
 var $loginurl;//登陸地地址  
 var $actionstr;//登陸參數(shù)  
 function __construct()  
 {  
  $this->cookie_file=dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt";   
  if(!file_exists($this->cookie_file))  
   { // 檢測Cookie是否存在      
   $str = $this->vget('jroam'); // 獲取登錄隨機值      
   preg_match("/name=\"formhash\" value=\"(.*?)\"/is",$str,$hash); // 提取登錄隨機值     
   $this->vlogin($this->loginurl,$this->actionstr); // 登錄獲取Cookie      
  }   
 }  

 function vlogin($url,$data){ // 模擬登錄獲取Cookie函數(shù)      
  $curl = curl_init(); // 啟動一個CURL會話      
  curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址                  
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查      
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在      
  curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器      
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉      
  curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer      
  curl_setopt($curl, CURLOPT_POST, 1); // 發(fā)送一個常規(guī)的Post請求      
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數(shù)據(jù)包      
  curl_setopt($curl, CURLOPT_COOKIEJAR, $this->cookie_file); // 存放Cookie信息的文件名稱      
  curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie_file); // 讀取上面所儲存的Cookie信息      
  curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環(huán)      
  curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容      
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回      
  $tmpInfo = curl_exec($curl); // 執(zhí)行操作      
  if (curl_errno($curl)) {      
     echo 'Errno'.curl_error($curl);      
  }      
  curl_close($curl); // 關閉CURL會話      
  return $tmpInfo; // 返回數(shù)據(jù)      
 }      

 function vget($url){ // 模擬獲取內(nèi)容函數(shù)      
  $curl = curl_init(); // 啟動一個CURL會話      
  curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址                  
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查      
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在      
  curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器      
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉      
  curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer      
  curl_setopt($curl, CURLOPT_HTTPGET, 1); // 發(fā)送一個常規(guī)的Post請求      
  curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie_file); // 讀取上面所儲存的Cookie信息      
  curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環(huán)      
  curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容      
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回      
  $tmpInfo = curl_exec($curl); // 執(zhí)行操作      
  if (curl_errno($curl)) {      
     echo 'Errno'.curl_error($curl);      
  }      
  curl_close($curl); // 關閉CURL會話      
  return $tmpInfo; // 返回數(shù)據(jù)      
 }      

 function vpost($url,$data){ // 模擬提交數(shù)據(jù)函數(shù)      
  $curl = curl_init(); // 啟動一個CURL會話      
  curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址                  
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查      
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在      
  curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器      
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉      
  curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer      
  curl_setopt($curl, CURLOPT_POST, 1); // 發(fā)送一個常規(guī)的Post請求      
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數(shù)據(jù)包      
  curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie_file); // 讀取上面所儲存的Cookie信息      
  curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環(huán)      
  curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容      
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回      
  $tmpInfo = curl_exec($curl); // 執(zhí)行操作      
  if (curl_errno($curl)) {      
     echo 'Errno'.curl_error($curl);      
  }      
  curl_close($curl); // 關鍵CURL會話      
  return $tmpInfo; // 返回數(shù)據(jù)      
 }      
 function delcookie($cookie_file){ // 刪除Cookie函數(shù)      
  @unlink($cookie_file); // 執(zhí)行刪除      
 }      
 }

使用方法

//應用實例 
 $mycurl=new CURL(); 
 $mycurl->loginurl="http://192.168.0.2/login.php";//登陸地址 
 $mycurl->actionstr="user_name=111&uspassword=1234";//參數(shù)串; 

 $url1='http://192.168.0.2/userlist.php"; 
 $htmlcontent= $mycurl->vget($url1); //輸出目標地址源碼 
echo $htmlcontent;

標簽: ssl

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:python 轉換數(shù)字為錢數(shù)

下一篇:一個自定義的C#緩存封裝類