日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php中curl模拟post提交多维数组

發布時間:2025/7/14 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中curl模拟post提交多维数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天需要用curl模擬post提交參數,請求同事提供的一個接口;但是傳遞的參數中,有一個參數的值為數組,用普通的curl post代碼提交,會報錯誤

PHP Notice:? Array to string conversion in /test/functions.php on line 30

Notice: Array to string conversion in /test/functions.php on line 30

代碼如下:

<?php$param = array('uid' => 123, 'uids' => array(12,455), 'msgType' => 'WITH', 'nick' => 'aaa', );$url = "http://cx.com/t.php";//通過curl的post方式發送接口請求SendDataByCurl($url,$param);//通過curl模擬post的請求; function SendDataByCurl($url,$data=array()){//對空格進行轉義$url = str_replace(' ','+',$url);$ch = curl_init();//設置選項,包括URLcurl_setopt($ch, CURLOPT_URL, "$url");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch,CURLOPT_TIMEOUT,3); //定義超時3秒鐘 // POST數據curl_setopt($ch, CURLOPT_POST, 1);// 把post的變量加上curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//執行并獲取url地址的內容$output = curl_exec($ch);//釋放curl句柄curl_close($ch);return $output;}

經過修改上面代碼,可以完成提交數組的功能,而不會報php notice,代碼如下:

//通過curl模擬post的請求; function SendDataByCurl($url,$data=array()){//對空格進行轉義$url = str_replace(' ','+',$url);$ch = curl_init();//設置選項,包括URLcurl_setopt($ch, CURLOPT_URL, "$url");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch,CURLOPT_TIMEOUT,3); //定義超時3秒鐘 // POST數據curl_setopt($ch, CURLOPT_POST, 1);// 把post的變量加上curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //所需傳的數組用http_bulid_query()函數處理一下,就ok了//執行并獲取url地址的內容$output = curl_exec($ch);$errorCode = curl_errno($ch);//釋放curl句柄curl_close($ch);if(0 !== $errorCode) {return false;}return $output;}

?

總結

以上是生活随笔為你收集整理的php中curl模拟post提交多维数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。