搜索

首页  >  问答  >  正文

php CURLOPT_POSTFIELDS 如何传递多参数

如题,

$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中文网2783 天前799

全部回复(2)我来回复

  • 高洛峰

    高洛峰2017-05-31 10:35:46

    方法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的基础知识都不了解。。

    回复
    0
  • 某草草

    某草草2017-05-31 10:35:46

    雷雷

    回复
    0
  • 取消回复