搜尋
首頁php教程php手册curl类,可用于模拟get,post和curl下载

curl类,可用于模拟get,post和curl下载

Jun 13, 2016 am 10:56 AM
classcurlgetphppost下載指定方式模擬類別獲取訪問

[php]
class Curl { 
 
    /*
     * get 方式获取访问指定地址
     * @param  string url 要访问的地址
     * @param  string cookie cookie的存放地址,没有则不发送cookie
     * @return string curl_exec()获取的信息
     * @author andy
     **/ 
    public function get( $url, $cookie='' ) 
    { 
        // 初始化一个cURL会话  
        $curl = curl_init($url); 
        // 不显示header信息  
        curl_setopt($curl, CURLOPT_HEADER, 0); 
        // 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。  
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
        // 使用自动跳转  
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
        if(!empty($cookie)) { 
            // 包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。  
            curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); 
        } 
        // 自动设置Referer  
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 
        // 执行一个curl会话  
        $tmp = curl_exec($curl); 
        // 关闭curl会话  
        curl_close($curl); 
        return $tmp; 
    } 
 
    /*
     * post 方式模拟请求指定地址
     * @param  string url   请求的指定地址
     * @param  array  params 请求所带的
     * #patam  string cookie cookie存放地址
     * @return string curl_exec()获取的信息
     * @author andy
     **/ 
    public function post( $url, $params, $cookie ) 
    { 
        $curl = curl_init($url); 
        curl_setopt($curl, CURLOPT_HEADER, 0); 
        // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。  
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
        // 从证书中检查SSL加密算法是否存在  
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); 
        //模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。  
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
        //发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。  
        curl_setopt($curl, CURLOPT_POST, 1); 
        // 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。  
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
        // 使用自动跳转  
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);  
        // 自动设置Referer  
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 
        // Cookie地址  
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); 
        // 全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,  
        // 在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串  
        // 类似'para1=val1¶2=val2&...'或使用一个以字段名为键值,字段数据为值的数组  
        // 如果value是一个数组,Content-Type头将会被设置成multipart/form-data。  
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); 
        $result = curl_exec($curl); 
        curl_close($curl); 
        return $result; 
    } 
 
    /**
     * 远程下载
     * @param string $remote 远程图片地址
     * @param string $local 本地保存的地址
     * @param string $cookie cookie地址 可选参数由
     * 于某些网站是需要cookie才能下载网站上的图片的
     * 所以需要加上cookie
     * @return void
     * @author andy
     */ 
    public function reutersload($remote, $local, $cookie= '') { 
        $cp = curl_init($remote); 
        $fp = fopen($local,"w"); 
        curl_setopt($cp, CURLOPT_FILE, $fp); 
        curl_setopt($cp, CURLOPT_HEADER, 0); 
        if($cookie != '') { 
            curl_setopt($cp, CURLOPT_COOKIEFILE, $cookie); 
        } 
        curl_exec($cp); 
        curl_close($cp); 
        fclose($fp); 
    } 
 

class Curl {

 /*
  * get 方式获取访问指定地址
  * @param  string url 要访问的地址
  * @param  string cookie cookie的存放地址,没有则不发送cookie
  * @return string curl_exec()获取的信息
  * @author andy
  **/
 public function get( $url, $cookie='' )
 {
  // 初始化一个cURL会话
  $curl = curl_init($url);
  // 不显示header信息
  curl_setopt($curl, CURLOPT_HEADER, 0);
  // 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 使用自动跳转
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  if(!empty($cookie)) {
   // 包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。
   curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  }
  // 自动设置Referer
  curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  // 执行一个curl会话
  $tmp = curl_exec($curl);
  // 关闭curl会话
  curl_close($curl);
  return $tmp;
 }

 /*
  * post 方式模拟请求指定地址
  * @param  string url 请求的指定地址
  * @param  array  params 请求所带的
  * #patam  string cookie cookie存放地址
  * @return string curl_exec()获取的信息
  * @author andy
  **/
 public function post( $url, $params, $cookie )
 {
  $curl = curl_init($url);
  curl_setopt($curl, CURLOPT_HEADER, 0);
  // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  // 从证书中检查SSL加密算法是否存在
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
  //模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
  curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  //发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
  curl_setopt($curl, CURLOPT_POST, 1);
  // 将 curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 使用自动跳转
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  // 自动设置Referer
  curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  // Cookie地址
  curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  // 全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,
  // 在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串
  // 类似'para1=val1¶2=val2&...'或使用一个以字段名为键值,字段数据为值的数组
  // 如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
  curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
  $result = curl_exec($curl);
  curl_close($curl);
  return $result;
 }

 /**
  * 远程下载
  * @param string $remote 远程图片地址
  * @param string $local 本地保存的地址
  * @param string $cookie cookie地址 可选参数由
  * 于某些网站是需要cookie才能下载网站上的图片的
  * 所以需要加上cookie
  * @return void
  * @author andy
  */
 public function reutersload($remote, $local, $cookie= '') {
  $cp = curl_init($remote);
  $fp = fopen($local,"w");
  curl_setopt($cp, CURLOPT_FILE, $fp);
  curl_setopt($cp, CURLOPT_HEADER, 0);
  if($cookie != '') {
   curl_setopt($cp, CURLOPT_COOKIEFILE, $cookie);
  }
  curl_exec($cp);
  curl_close($cp);
  fclose($fp);
 }

}

 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。