首頁  >  問答  >  主體

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沒有傳過去

params沒有傳過去

params

求解答 謝謝###
PHP中文网PHP中文网2697 天前762

全部回覆(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
  • 取消回覆