php curl使用方法與步驟
本書特別新手的一點(diǎn),是將重要操作的核心思路都為大家提供了。在資料庫、圖片、檔案上傳我們都把真正的步驟。以及步驟如何組何成為我們的程式碼和實(shí)作過程都做過講解。
我們將curl的步驟分成以下7步驟:
????1.初使化curl資源
????2.參數(shù)設(shè)定請求的協(xié)定位址
????3.參數(shù)設(shè)定是否回傳請求結(jié)果
????4.設(shè)定傳送資料(無傳送資料可不設(shè)定)
????5.其他的參數(shù)資訊設(shè)定(依實(shí)際運(yùn)作需要決定)
????6.執(zhí)行或執(zhí)行得到返回結(jié)果
????7.關(guān)閉curl資源
我們?yōu)榱烁玫淖尨蠹覍W(xué)習(xí)和入門,將第2步至第5步本來應(yīng)該歸為一步的插成了4個(gè)步驟。
第二步至第五步本質(zhì)上,應(yīng)該統(tǒng)成為curl參數(shù)設(shè)定。
所有curl設(shè)定參數(shù)設(shè)定都是透過curl_setopt都完成
curl_setopt這一步最為重要,一切玄妙均在此。
curl_setopt這一步完成了包含連線、參數(shù)和一切請求的細(xì)節(jié)設(shè)定。要一次全部看完並理解可能比較困難,所以我們只試試那些更常用、更有用的選項(xiàng)。
我們?yōu)榱烁玫娜腴T。而在php中我們用的最多的是http請求。因此,我們將一些不需要大家使用到的全部不作講解。
如果有興趣的朋友可以參考curl_setopt中複雜的參數(shù)設(shè)定。
網(wǎng)址如下:http://php.net/manual/zh/function.curl-setopt.php
一、初使化curl資源
#這只有一句話,就是使用的是curl_init函數(shù)。這個(gè)參數(shù)法面要傳入任何參數(shù)。返回curl的操作資源。 因?yàn)?,我們在後面是透過curl_setopt向curl的操作資源變數(shù)壓入資料的。 範(fàn)例:$ch = curl_init();二、參數(shù)設(shè)定請求的協(xié)定位址
#類型 | 說明 |
函數(shù) |
CURLOPT_URL?這個(gè)參數(shù)選項(xiàng)規(guī)定了請求的url位址。
curl_setopt($ch, CURLOPT_URL, "http://miracleart.cn");
三、參數(shù)設(shè)定是否回傳請求結(jié)果
我們希望curl請求後回傳對應(yīng)的結(jié)果。我們要得到對應(yīng)的結(jié)果,也需要設(shè)定一個(gè)參數(shù),這個(gè)參數(shù)名為:CURLOPT_RETURNTRANSFER。
若需要傳回值即為1。不需請求後回傳的結(jié)果可設(shè)定為0。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
四、設(shè)定發(fā)送資料
#如果是get請求,我們不需要設(shè)定發(fā)送的參數(shù)。在post等請求的時(shí)候,我們需要設(shè)定發(fā)送方法為post方法。並設(shè)定發(fā)送的數(shù)據(jù)。
*CURLOPT_POST *值設(shè)為1是使用POST方法,0為不使用POST方法
CURLOPT_POSTFIELDS設(shè)定傳遞的資料
//聲明使用POST方式來進(jìn)行發(fā)送 curl_setopt($ch, CURLOPT_POST, 1); //發(fā)送什么數(shù)據(jù)呢 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
#五、其他的參數(shù)資訊設(shè)定
如果是https有的時(shí)候我們需要忽略https的安全性憑證。
CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST 兩個(gè)參數(shù)改為false即忽略了憑證。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
CURLOPT_HEADER這個(gè)參數(shù)又決定是是否處理http的頭訊息,我們不想接收處理的話可將這個(gè)值設(shè)為0。
curl_setopt($ch, CURLOPT_HEADER, 0);
此外,我們還可以設(shè)定請求的逾時(shí)時(shí)間,參數(shù)為:CURLOPT_TIMEOUT。
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
其他參數(shù)非常多,我們在之前講過,如果你想了解更多的內(nèi)容可以訪問:
地址如下:http://php.net/manual/zh/function.curl -setopt.php
六、執(zhí)行或執(zhí)行得到返回結(jié)果
我們第三步驟中,將CURLOPT_RETURNTRANSFER 參數(shù)中將值設(shè)為1。如果執(zhí)行的結(jié)果有數(shù)據(jù)。使用curl_exec執(zhí)行後,會將結(jié)果傳回$output變數(shù)。
$output = curl_exec($ch);
七、關(guān)閉curl資源
#關(guān)閉curl資源。因?yàn)橘Y源類型,我們一再強(qiáng)調(diào)過,有開啟就有關(guān)閉。
如果不需要使用,使用curl_close關(guān)閉後立刻釋放記憶體。
curl_close($ch);
八丶將上面的組合在一起
#<?php //初始化 $ch = curl_init(); //設(shè)置選項(xiàng),包括URL curl_setopt($ch, CURLOPT_URL, "http://miracleart.cn"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //執(zhí)行并獲取HTML文檔內(nèi)容 $output = curl_exec($ch); //釋放curl句柄 curl_close($ch); //打印獲得的數(shù)據(jù) print_r($output); ?>
##