使用curl的php擴充套件完成乙個http請求的傳送一般有以下幾個步驟:
初始化連線控制代碼;
設定curl選項;
執行並獲取結果;
釋放vurl連線控制代碼
下面的程式片段是使用curl傳送http的典型過程
// 1. 初始化
$ch = curl_init();
// 2. 設定選項,包括url
curl_setopt($ch,curlopt_url,"");
curl_setopt($ch,curlopt_returntransfer,1);
curl_setopt($ch,curlopt_header,0);
// 3. 執行並獲取html文件內容
$output = curl_exec($ch);
if($output === false )
// 4. 釋放curl控制代碼
curl_close($ch);
curl_init():初始化curl連線
curl_setopt():通過設定curl函式庫定義的選項來定製http請求
curl_setopt()裡有多種選項(在post請求中也是可以傳輸get資料的,只需要在url中拼裝get請求資料即可):
curlopt_url : 指定請求的url;
curlopt_returntransfer: 設定為1表示稍後執行的curl_exec函式的返回是url的返回字串,而不是把返回字串定向到標準輸出並返回true;
curllopt_header: 設定為0表示不返回http頭部資訊。
專屬post請求的選項
curlopt_post : 標識這個請求是乙個post請求;
curlopt_postfields : 傳輸引數;
curl_exec() :執行curl請求,如果沒有錯誤發生,該函式的返回是對應url返回的資料,以字串表示滿意;如果發生錯誤,該函式返回 false。需要注意的是,判斷輸出是否為false用的是全等號,這是為了區分返回空串和出錯的情況。
curl_close():關閉curl連線
**
*@desc 封閉curl的呼叫介面,get的請求方式。
}
2.post請求
/**
** @desc 封裝 curl 的呼叫介面,post的請求方式
**/function docurlpostrequest($url,$requeststring,$timeout = 5)
$con = curl_init((string)$url);
curl_setopt($con, curlopt_header, false);
curl_setopt($con, curlopt_postfields, $requeststring);
curl_setopt($con, curlopt_post,true);
curl_setopt($con, curlopt_returntransfer,true);
curl_setopt($con, curlopt_timeout,(int)$timeout);
return curl_exec($con);
curl_close($con);
}
對CURL的一些研究
對curl的一些研究 前兩天看到有人求客戶端socket 發http包的 受flw版主啟發找了一些perl的資料,不過對perl 還是不太熟悉。也沒有深入的研究。無意中發現了libcurl.so 這個庫。去google上搜尋發現它是處理客戶端傳送http請求的庫 以及可以處理web伺服器回送回來的包...
對CURL的一些研究
前兩天看到有人求客戶端socket 發http包的 受flw版主啟發找了一些perl的資料,不過對perl 還是不太熟悉。也沒有深入的研究。無意中發現了libcurl.so 這個庫。去google上搜尋發現它是處理客戶端傳送http請求的庫以及可以處理web伺服器回送回來的包。研究 了兩天將研究的成...
對CURL的一些研究
對curl的一些研究 前兩天看到有人求客戶端socket 發http包的 受flw版主啟發找了一些perl的資料,不過對perl 還是不太熟悉。也沒有深入的研究。無意中發現了libcurl.so 這個庫。去google上搜尋發現它是處理客戶端傳送http請求的庫 以及可以處理web伺服器回送回來的包...