本文章來給大家介紹PHP利用curl實現get與POST提交數據方法,各位朋友有需要了解的可進入參考。
curl實現get提交數據
代碼如下
復制代碼
// 初始化一個 cURL 對象
$curl = curl_init();
// 設置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://www.bKjia.c0m');
// 設置header, 最後一個參數是0表示返回值不帶有header,1表示帶有header
curl_setopt($curl, CURLOPT_HEADER, 0);
// 設置浏覽器的特定header,可選,如果目標網站有要求的話
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"User-Agent: {'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)'}",
"Accept-Language: {en-us,en;q=0.5}"
));
//或者只設置user-agent,可選,如果目標網站有要求的話
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
// 設置cURL 參數,要求結果保存到字符串中還是輸出到屏幕上,1表示保存到字符串
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 頁面內容不需要時,設置為1. 默認為0
curl_setopt($ch, CURLOPT_NOBODY, 1);
// 運行cURL,請求網頁,保存在$data
$data = curl_exec($curl);
// 關閉URL請求
curl_close($curl);
//檢查錯誤
//比較的時候我們用的是“=== FALSE”,而非“== FALSE”,因為我們得區分’空輸出‘和’布爾值FALSE‘
if ($output === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
//可以獲取信息
$info = curl_getinfo($ch);
echo '獲取'. $info['url'] . '耗時'. $info['total_time'] . '秒';
/* ...返回的數組中包括了以下信息:
“url” //資源網絡地址
“content_type” //內容編碼
“http_code” //HTTP狀態碼
“header_size” //header的大小
“request_size” //請求的大小
“filetime” //文件創建時間
“ssl_verify_result” //SSL驗證結果
“redirect_count” //跳轉技術
“total_time” //總耗時
“namelookup_time” //DNS查詢耗時
“connect_time” //等待連接耗時
“PRetransfer_time” //傳輸前准備耗時
“size_upload” //上傳數據的大小
“size_download” //下載數據的大小
“speed_download” //下載速度
“speed_upload” //上傳速度
“download_content_length”//下載內容的長度
“upload_content_length” //上傳內容的長度
“starttransfer_time” //開始傳輸的時間
“redirect_time”//重定向耗時
*/
curl實現POST提交數據
http的post實現
代碼如下
復制代碼
//extract data from the post
extract($_POST) ;
//set POST variables
$url = 'http://www.bKjia.c0m' ;
$fields = array(
'lname'=>urlencode($last_name) ,
'fname'=>urlencode($first_name) ,
'title'=>urlencode($title) ,
'company'=>urlencode($institution) ,
'age'=>urlencode($age) ,
'email'=>urlencode($email) ,
'phone'=>urlencode($phone)
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&' ; }
rtrim($fields_string ,'&') ;
//open connection
$ch = curl_init() ;
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL,$url) ;
curl_setopt($ch, CURLOPT_POST,count($fields)) ;
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string) ;
//execute post
$result = curl_exec($ch) ;
//close connection
curl_close($ch) ;