php CURLOPT_POSTFIELDS 如何传递多参数
PHP中文网
PHP中文网 2017-05-31 10:33:46
[PHP讨论组]

如题,

$data = $textArray['content'];// 是个字符串
$params = array('top_k'=>10);
$ch = curl_init();
curl_setopt_array($ch,
    CURLOPT_POSTFIELDS => json_encode($data,$params,JSON_UNESCAPED_UNICODE),
));// 这里其他部分省略了

我是这样写的

但是打印json_encode($data,$params,JSON_UNESCAPED_UNICODE),发现为空

然后这样写CURLOPT_POSTFIELDS => json_encode($data,JSON_UNESCAPED_UNICODE),json_encode($params,JSON_UNESCAPED_UNICODE),
这样发现$params没有传过去

求解答 谢谢

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
高洛峰

方法1

$data = $textArray['content'];// 是个字符串
$params = array('top_k'=>10);

$array = [];
$array['data'] = $data;
$array['params'] = $params;

$ch = curl_init();
curl_setopt_array($ch,
    CURLOPT_POSTFIELDS => json_encode($array,JSON_UNESCAPED_UNICODE),
));
//code.....

方法2

$data = $textArray['content'];// 是个字符串
$params = array('top_k'=>10);

$params['data'] = $data;

$ch = curl_init();
curl_setopt_array($ch,
    CURLOPT_POSTFIELDS => json_encode($params,JSON_UNESCAPED_UNICODE),
));
//code.....

方法2的变形

$data = $textArray['content'];// 是个字符串

$params = array('top_k'=>10,'data'=>$data);

$ch = curl_init();
curl_setopt_array($ch,
    CURLOPT_POSTFIELDS => json_encode($params,JSON_UNESCAPED_UNICODE),
));
//code.....

方法3 简洁版

$ch = curl_init();
curl_setopt_array($ch,
    CURLOPT_POSTFIELDS => json_encode(array('top_k'=>10,'data'=>$textArray['content']),JSON_UNESCAPED_UNICODE),
));
//code.....

这不就可以了。。。。

我发现你对php的基础知识都不了解。。

某草草
curl_setopt_array($ch,
    CURLOPT_POSTFIELDS => json_encode($data,$params,JSON_UNESCAPED_UNICODE),
));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json'
);
//接收
$data  = file_get_contents('php://input');
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号