目錄
PHP 使用CURL 传递多维数组问题
现在要写一个API,但是用curl传参数时多维数组的传递有问题
{ $post_data = array( 'auth-userid' => 611510, 'api-key' => 'api', 'domain-name'=>array('domain1','domain2'), 'tlds' => 'com', ); $result=http_build_query($post_data); var_dump($result); }
登入後複製
开始用的时候一直出现 domain 参数的丢失报错,然后就看下传递的数据,是这样的
string 'auth-userid=611510&api-key=api&
domain-name%5B0%5D=domain1&domain-name%5B1%5D=domain2&tlds=com' (length=93);
而我要传的应该是
'auth-userid=611510&api-key=api&
domain-name=domain1&domain-name=domain2&tlds=com'
这样传才不会报错,为什么用了http_build_query(),二维数组就会出现这个%5B0%5D,和%5B1%5D,这怎么解决
回复讨论(解决方案)
其实这个问题很简单。
http_build_query ? 生成 URL-encode 之后的请求字符串
产生的是一个url encode 的字符串。里面都是已经给encode 。
你可以使用
$post_data = array( 'auth-userid' => 611510, 'api-key' => 'api', 'domain-name'=>array('domain1','domain2'), 'tlds' => 'com', ); $result=http_build_query($post_data); var_dump($result); var_dump(urldecode($result));
登入後複製
这样来解决,数据都是domain-name[0]=domain1&domain-name[1]= 这样来传递。
欢迎你加入到技术群,来学习更多的技术 231566327
%5B0%5D 是 [] 一对方括号
这是按 php 的规则生成的
如果对方不是 php 则要按 domain-name[] 这个名字访问 domain-name 成员
或者你就把它删掉
$result = str_replace('%5B0%5D', '', http_build_query($post_data));
若对方是 php 的话,就一定不能删了。否则就会少数据了
那还是地址给url encode
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)