本書特別新手的一點,是將重要操作的核心思路都為大家提供了。在資料庫、圖片、檔案上傳我們都把真正的步驟。以及步驟如何組何成為我們的程式碼和實作過程都做過講解。
我們將curl的步驟分成以下7步驟:
1.初使化curl資源
2.參數設定請求的協定位址
3.參數設定是否回傳請求結果
4.設定傳送資料(無傳送資料可不設定)
5.其他的參數資訊設定(依實際運作需要決定)
6.執行或執行得到返回結果
7.關閉curl資源
我們為了更好的讓大家學習和入門,將第2步至第5步本來應該歸為一步的插成了4個步驟。
第二步至第五步本質上,應該統成為curl參數設定。
所有curl設定參數設定都是透過curl_setopt都完成
curl_setopt這一步最為重要,一切玄妙均在此。
curl_setopt這一步完成了包含連線、參數和一切請求的細節設定。要一次全部看完並理解可能比較困難,所以我們只試試那些更常用、更有用的選項。
我們為了更好的入門。而在php中我們用的最多的是http請求。因此,我們將一些不需要大家使用到的全部不作講解。
如果有興趣的朋友可以參考curl_setopt中複雜的參數設定。
網址如下:http://php.net/manual/zh/function.curl-setopt.php
一、初使化curl資源
#這只有一句話,就是使用的是curl_init函數。這個參數法面要傳入任何參數。返回curl的操作資源。 因為,我們在後面是透過curl_setopt向curl的操作資源變數壓入資料的。 範例:$ch = curl_init();二、參數設定請求的協定位址
#類型 | 說明 |
函數 |
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);
其他參數非常多,我們在之前講過,如果你想了解更多的內容可以訪問:
地址如下:http://php.net/manual/zh/function.curl -setopt.php
六、執行或執行得到返回結果
我們第三步驟中,將CURLOPT_RETURNTRANSFER 參數中將值設為1。如果執行的結果有數據。使用curl_exec執行後,會將結果傳回$output變數。
$output = curl_exec($ch);
七、關閉curl資源
#關閉curl資源。因為資源類型,我們一再強調過,有開啟就有關閉。
如果不需要使用,使用curl_close關閉後立刻釋放記憶體。
curl_close($ch);
八丶將上面的組合在一起
#<?php //初始化 $ch = curl_init(); //设置选项,包括URL curl_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); ?>
##下一節