php curl的功能有什嗎?php curl庫的應用(附代碼)

來源:互聯網
上載者:User
微博公眾號、QQ公眾號、地圖和很多的第三方功能提供都是採用http 的API(應用程式)形式向開發人員提供的功能。那麼,如何請求、地圖等第三方API呢?這個時候就需要使用到cURL,本文就來給大家介紹一下php curl庫的應用。

cURL中文翻譯過來叫做基於URL的函數庫。它的主要功能是:使用相關的函數類比協議請求。

例如:

  1. 類比表單向某個地址發送資料

  2. 在無驗證碼的情況下類比表單完成使用者登陸

  3. 上傳某個檔案到遠程伺服器

  4. 請求遠程伺服器提供的某些功能
    ... ...

curl支援dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smtp, smtps, telnet和tftp協議。
curl同時也支援HTTPS認證、HTTP的POST、HTT的PPUT、FTP上傳(這個也能通過PHP的FTP擴充完成)、HTTP基於表單的上傳、代理、cookies和使用者名稱+密碼的認證。

一、初使化curl資源

這隻有一句話,就是使用的是curl_init函數。這個參數法面要傳入任何參數。返回curl的操作資源。

因為,我們在後面是通過curl_setopt向curl的操作資源變數壓入資料的。

例:

$ch = curl_init();

二、參數佈建要求的協議地址

curl_setopt函數的詳細使用如下:

類型 說明
函數 curl_setopt
參數1 curl資源變數
參數2 curl參數選項
參數3 curl參數值

CURLOPT_URL 這個參數選項規定了請求的url地址。

curl_setopt($ch, CURLOPT_URL, "http://www.php.cn");

三、參數設定是否返回請求結果

我們希望curl請求後返回對應的結果。我們要得到對應的結果,也需要設定一個參數,這個參數名為:CURLOPT_RETURNTRANSFER。

若需要傳回值即為1。不需請求後返回的結果可設定為0。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

四、設定發送資料

如果是get請求,我們不需要設定發送的參數。在post等請求的時候,我們需要設定發送方法為post方法。並設定發送的資料。

*CURLOPT_POST *值設為1是使用POST方法,0為不使用POST方法

CURLOPT_POSTFIELDS設定傳遞的資料

//聲明使用POST方式來進行發送    curl_setopt($ch, CURLOPT_POST, 1);//發送什麼資料呢curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

五、其他的參數資訊設定

如果是https有的時候我們需要忽略https的安全性憑證。

CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST 兩個參數改為false即忽略了認證。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

CURLOPT_HEADER這個參數又決定是是否處理http的頭資訊,我們不想接收處理的話可將這個值設定為0。

curl_setopt($ch, CURLOPT_HEADER, 0);

此外,我們還可以佈建要求的逾時時間,參數為:CURLOPT_TIMEOUT。

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

其他參數非常多,有需要可以訪問www.php.cn

六、執行或執行php curl擷取返回結果

我們第三步中,將CURLOPT_RETURNTRANSFER 參數中將值設為1。如果執行的結果有資料。使用curl_exec執行後,會將結果返回給$output變數。

$output = curl_exec($ch);

七、關閉curl資源

關閉curl資源。因為資源類型,我們反覆強調過,有開啟就有關閉。

如果不需要使用,使用curl_close關閉後立刻釋放記憶體。

curl_close($ch);

八丶將上面的組合在一起

<?php//初始化$ch = curl_init();//設定選項,包括URLcurl_setopt($ch, CURLOPT_URL, "http://www.php.cn");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);//執行並擷取HTML文檔內容$output = curl_exec($ch);//釋放curl控制代碼curl_close($ch);//列印獲得的資料print_r($output);?>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.