[PHP] curl post json & array 时,传递对象问题

当使用curlpost一个请求的话,一般代码如下:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

当这里传递的$data如果是标准的一个phparray对象的话,如果array有嵌套,比如

array(a=>array(5))的话,接受到的对象就会变成 array(a => Array)这样,是不符合请求的;

如果$data是一个标准的json的话,依然会有问题:

$data= {"a"=[1,2,3]}则请求后的结果是

array({a=>array(xxx)})具体原因不知道,貌似是由于$_POST对象解析相关

所以,如果想传参数的话可以有以下2种方式

1. 传递对象:http_build_query($data),传递这个值,这请求到的是ok的

2. 传递json:在外面包装一层array既 $data['json'] = {"a"=[1,2,3]} 则,获得到的$_POST['json']是ok的

转载于:https://www.cnblogs.com/-Rik/archive/2012/09/19/2693368.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值