PHP使用CURL實現POST和GET請求詳解

2021-07-29 05:37:26 字數 2917 閱讀 2147

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...