返回舊版| 微信建站| 我要建站 | 建站學習 | 加入收藏
PHP基礎當前位置:首頁 > HTML教程 > PHP基礎 > 正文

php中curl模擬post提交多維數組

發布時間:2019-11-01 11:39:52   來源:   點擊:
由于curl傳遞多維參數的時候,二維數組的內容會被直接傳遞成array,造成無法接受,所以需要對二維碼數組做一些處理
參考:
  1. //通過curl模擬post的請求; 
  2. function SendDataByCurl($url,$data=array()){ 
  3.     //對空格進行轉義 
  4.     $url = str_replace(' ','+',$url); 
  5.     $ch = curl_init(); 
  6.     //設置選項,包括URL 
  7.     curl_setopt($ch, CURLOPT_URL, "$url"); 
  8.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  9.     curl_setopt($ch, CURLOPT_HEADER, 0); 
  10.     curl_setopt($ch,CURLOPT_TIMEOUT,3);  //定義超時3秒鐘   
  11.      // POST數據 
  12.     curl_setopt($ch, CURLOPT_POST, 1); 
  13.     // 把post的變量加上 
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));    //所需傳的數組用http_bulid_query()函數處理一下,就ok了 
  15.      
  16.     //執行并獲取url地址的內容 
  17.     $output = curl_exec($ch); 
  18.     $errorCode = curl_errno($ch); 
  19.     //釋放curl句柄 
  20.     curl_close($ch); 
  21.     if(0 !== $errorCode) { 
  22.         return false
  23.     } 
  24.     return $output; 
  25.  
http_build_query方法解釋:
http_build_query()函數的作用是使用給出的關聯(或下標)數組生成一個經過 URL-encode 的請求字符串。

寫法格式:http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

打個比方:$data = array("name"=>"callback" , "value"=>"test");

$rescult = http_build_query($data);

我們輸出下$rescutl可以得到:

name=callback&value=test

這個有什么用呢,這是模擬http請求的,把得到的數據data通過函數URL-encode,一般是用在回調。



版權所有:鄭州騰石網絡科技有限公司 備案信息:豫ICP備18019117號
站長QQ:2863868475 業務合作咨詢:15137100750(同微信)
本站所有投放的廣告是有其他網站提供,不代表本站立場,同時網站首頁廣告位對外出租詳情咨詢本站站長!同時歡迎廣大站長加入個人建站團隊
  • 建站客服
  • CMS仿站
  • CMS學習
  • 技術交流群:336572814
辽宁十一选五一定牛图表