curl在php中的使用,速度相對於php自帶的file_get_contents()函式快很多,當我們在開發的過程中會使用到不同的伺服器,這時候就可以使用crul技術來進行資料的傳遞和獲取;通常,我們會使用到get和post兩種方式來進行資料請求;下面,給大家演示下這兩種curl請求方式的具體使用過程。
使用php中的curl擴充套件來進行http資料請求,一般要進行以下幾步操作:
(1)初始化curl連線控制代碼
$ch = curl_init();
初始化乙個curl會話,此函式唯一的乙個引數是可選的,表示乙個url位址;
(2)設定curl選項
curl_setopt(curl物件,curl引數,引數2)
(3)執行操作並獲取結果
curl_exec(curl物件)
具體**如下:
//初始化
$curl = curl_init();
//設定抓取的url
curl_setopt($curl, curlopt_url, '');
//此處設定為0表示不返回http的頭部資訊
curl_setopt($curl, curlopt_header, 0);
//設定獲取的資訊以檔案流的形式返回,而不是直接輸出。
curl_setopt($curl, curlopt_returntransfer, 1);
//執行操作並獲取相關資料資訊
$output = curl_exec($ch);
//輸出出錯資訊
if($output === false )
//關閉curl請求
curl_close($ch);
get方式請求資料
$data為陣列形式,http_bulid_query()-生成 url-encode 之後的請求字串,形如:foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&baz=boom&cow=milk&php=hypertext+processor
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
$url = 'http:www.myurl.com?'.http_bulid_query($data);//可以直接拼url引數
//初始化,例項化curl物件,因為是get方式請求,所以我們在此處使用curl_init()的可選引數
$curl = curl_init($url);
// curl_setopt($curl, curlopt_url, $url);//已使用curl_init()的可選引數,故此處不需使用;當然,你也可以使用此項,兩者二選一;
curl_setopt($curl, curlopt_header, 0);
curl_setopt($curl, curlopt_returntransfer, 1);
$data = curl_exec($curl);
curl_close($curl);
//顯示獲得的資料
print_r($data);
3.post方式請求資料
//初始化
$curl = curl_init();
//設定抓取的url
curl_setopt($curl, curlopt_url, '');
//設定http頭部資訊不輸出
curl_setopt($curl, curlopt_header, 0);
//設定獲取的資訊以檔案流的形式返回,而不是直接輸出。
curl_setopt($curl, curlopt_returntransfer, 1);
//設定post方式提交,使用get方式也可開啟此項
curl_setopt($curl, curlopt_post, 1);
//設定post資料
$post_data = array(
"username" => "coder",
"password" => "12345"
);curl_setopt($curl, curlopt_postfields, $post_data);
//執行命令
$data = curl_exec($curl);
//關閉url請求
curl_close($curl);
//顯示獲得的資料
print_r($data);
4.封裝方法,根據使用方式不同,靈活使用curl
function curl($type,$url,$data)
$return = curl_exec ( $ch );
curl_close ( $ch );
return
$return;
}
下面是使用上面封裝好的curl例子,通過判斷$type是post型別還是get型別,靈活使用curl進行資料的抓取和傳遞:
$url="";
$data = array(
'foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor'
)if($type == 'get')elseif($type == 'post')
//將json格式轉化為陣列並輸出
$array=(array)json_decode($data,true);
print_r($array);
寫的不好的地方,還望大家多多指點哦^_^ PHP中使用cURL實現Get和Post請求的方法
1.curl介紹 curl 是乙個利用url語法規定來傳輸檔案和資料的工具,支援很多協議,如http ftp telnet等。最爽的是,php也支援 curl 庫。本文將介紹 curl 的一些高階特性,以及在php中如何運用它。2.基本結構 在學習更為複雜的功能之前,先來看一下在php中建立curl...
PHP中使用cURL實現Get和Post請求的方法
1.curl介紹 curl 是乙個利用url語法規定來傳輸檔案和資料的工具,支援很多協議,如http ftp telnet等。最爽的是,php也支援 curl 庫。本文將介紹 curl 的一些高階特性,以及在php中如何運用它。2.基本結構 1 初始化 curl init 2 設定變數 curl s...
PHP中使用cURL實現Get和Post請求的方法
1.curl介紹 curl 是乙個利用url語法規定來傳輸檔案和資料的工具,支援很多協議,如http ftp telnet等。最爽的是,php也支援 curl 庫。本文將介紹 curl 的一些高階特性,以及在php中如何運用它。2.基本結構 在學習更為複雜的功能之前,先來看一下在php中建立curl...