国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP中使用CURL發送get/post請求上傳圖片批處理功能

2024-05-05 00:05:40
字體:
來源:轉載
供稿:網友

cURL是利用url語法規定傳輸文件和數據的工具。php中有curl拓展,一般用來實現網絡抓取,模擬發送get   post請求,文件上傳。

在php中建立curl的基本步驟如下:

1.初始化       

2. 設置選項,包括url     

3. 執行并獲取結果     

4. 釋放curl句柄。

在工作和學習中,我也是時常用的curl。由于在使用curl設置選項時,各種選項比較難以記憶,需要參考,故在此記錄下常用的一些例子,以便后來參考。

實例一 : 抓取網頁數據(以拉手網開放api為例,也是get請求)

<?phpheader("Content-type: text/html; charset=utf-8"); $ch = curl_init();//初始化/*============開始設置curl各種選項================*/curl_setopt($ch, CURLOPT_URL, "http://open.lashou.com/opendeals/lashou/city.xml");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$html = curl_exec($ch);//執行句柄,獲取返回內容curl_close($ch);//釋放句柄echo $html

如果用這種方法發get請求,參數附加到url后面即可,如curl_setopt($ch, CURLOPT_URL, "http://localhost/tqj/date/p822.php?name=yyyyy");

實例二:  利用curl發送post請求

<?php$uri = "http://localhost/tqj/date/p822.php";// post參數數組$data = array (  'name' => 'tianquanjun',  'password' => 'tianquanjun',);//初始化$ch = curl_init ();//各種項設置,網上參考而來,可以查看php手冊,自己設置curl_setopt ( $ch, CURLOPT_URL, $uri );curl_setopt ( $ch, CURLOPT_POST, 1 );//post方式curl_setopt ( $ch, CURLOPT_HEADER, 0 );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );//執行$return = curl_exec ( $ch );//釋放curl_close ( $ch );print_r($return);

實例三  :curl 過程調試與錯誤信息處理

<?php$uri = "http://localhost/tqj/date/p822.php";// post參數數組$data = array (  'name' => 'tianquanjun',  'password' => 'tianquanjun',);//初始化$ch = curl_init ();//各種項設置,網上參考而來,可以查看php手冊,自己設置curl_setopt ( $ch, CURLOPT_URL, $uri );curl_setopt ( $ch, CURLOPT_POST, 1 );//post方式curl_setopt ( $ch, CURLOPT_HEADER, 0 );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );//執行$return = curl_exec ( $ch );//容錯機制if($return === false){ var_dump(curl_error($ch)); }//curl_getinfo()獲取各種運行中信息,便于調試 $info = curl_getinfo($ch);echo "執行時間".$info['total_time'].PHP_EOL;//釋放curl_close ( $ch );print_r($return);?>

其中利用curl_error()獲取錯誤信息,curl_getinfo()獲取運行相關信息。

實例四:  上傳圖片,獲取返回信息。

跨域上傳圖片,同時獲取返回信息,這個就能大顯身手。和post比較像,注意文件之前加一個@符號

<?php$uri = "http://localhost/tqj/date/p822.php";// post參數數組$data = array (  'author' => 'tianquanjun',  'upload' => '@C:/Users/tianquanjun.DANGDANG/Pictures/a.jpg',);//初始化$ch = curl_init ();//各種項設置,網上參考而來,可以查看php手冊,自己設置curl_setopt ( $ch, CURLOPT_URL, $uri );curl_setopt ( $ch, CURLOPT_POST, 1 );//post方式curl_setopt ( $ch, CURLOPT_HEADER, 0 );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );//執行$return = curl_exec ( $ch );//容錯機制if($return === false){ var_dump(curl_error($ch)); }//curl_getinfo()獲取各種運行中信息,便于調試 $info = curl_getinfo($ch);echo "執行時間".$info['total_time'].PHP_EOL;//釋放curl_close ( $ch );print_r($return);

實例五 : curl批處理

  curl有一個高級特性,批處理句柄。允許打開多個curl鏈接。 

  批處理就是打開多個curl句柄,并把這些句柄指派給一個批處理句柄,然后在while循環里等待處理完畢。curl_multi_exec()算是稱得上多線程處理,不過它還是屬于異步的范疇。

<?phpheader("Content-type: text/html; charset=gbk");$urls=array('http://www.baidu.com','http://www.qq.com/');$ch=array();//批處理句柄$mh=curl_multi_init();//打開多個curl句柄,并指派給一個批處理句柄$ch[0]=curl_init($urls[0]);$ch[1]=curl_init($urls[1]);for($i=0;$i<2;$i++){curl_setopt($ch[$i],CURLOPT_RETURNTRANSFER,1);curl_multi_add_handle($mh,$ch[$i]);}$running = NULL;do{ usleep(10000); curl_multi_exec($mh,$running);//實現批處理,可以看做curl多線程,實際是異步范疇}while($running>0);$res=array();for($j=0;$j<2;$j++){ $res[$j]=curl_multi_getcontent($ch[$j]);}//關閉句柄for($k=0;$k<2;$k++){ curl_multi_remove_handle($mh,$ch[$k]);}curl_multi_close($mh);print_r($res);?>

  基本算是列舉了常用的一些實例。要想靈活運用curl,還是得熟悉curl的各個設置項,這些設置項才是curl的靈魂。

總結

以上所述是小編給大家介紹的PHP中使用CURL發送get/post請求上傳圖片批處理 功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 福贡县| 通海县| 馆陶县| 招远市| 平塘县| 孟连| 天柱县| 繁昌县| 遂宁市| 岫岩| 台湾省| 东乡| 五华县| 封丘县| 东丽区| 江城| 花垣县| 松潘县| 鲁山县| 尉氏县| 穆棱市| 云林县| 保德县| 无锡市| 渝北区| 库车县| 缙云县| 陇川县| 咸阳市| 收藏| 宣化县| 赞皇县| 阜康市| 梁山县| 张掖市| 资溪县| 阿拉尔市| 清水河县| 罗甸县| 长沙市| 绿春县|