Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将变量插入post请求的字符串中_Php - Fatal编程技术网

PHP将变量插入post请求的字符串中

PHP将变量插入post请求的字符串中,php,Php,我的函数在$json变量只有一个字符串时工作,但在尝试将值作为变量插入时不工作。不知道问题是什么。这是我的密码: $myAPIKey = "apikey"; $command = "campaignstats"; $id = "9000"; $date = "2016-01-11"; $groupby = "domain"; function call($apiKey, $cmd, $dt, $i, $gpby) { $url = "http://data.co

我的函数在$json变量只有一个字符串时工作,但在尝试将值作为变量插入时不工作。不知道问题是什么。这是我的密码:

  $myAPIKey = "apikey";
  $command = "campaignstats";
  $id = "9000";
  $date = "2016-01-11";
  $groupby = "domain";

  function call($apiKey, $cmd, $dt, $i, $gpby) {
    $url = "http://data.company.net/auth";

    // $json = '{"command" : "campaignstats",
    //           "date" : "2016-01-11",
    //           "id" : "9000",
    //           "groupby" : "domain"}';

    $json = '{"command" : '.$cmd.',
              "date" : '.$dt.',
              "id" : '.$i.',
              "groupby" : '.$gpby.'}';

    $sAPIKey = auth($apiKey);

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'json='.$json.'&sapi_key='.$sAPIKey);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $raw_output = curl_exec($ch);
    curl_close($ch);
    $output = json_decode($raw_output, true);
  }

call($myAPIKey, $command, $id, $date, $groupby);

您可以使用
json\u encode
,只需根据您拥有的数据构建一个关联数组

$data = [
    'command'   => $cmd,
    'data'      => $dt,
    'id'        => $i,
    'groupby'   => $gpby
];

$string = json_encode($data);
然后将其作为post字段的值传递

curl_setopt($ch, CURLOPT_POSTFIELDS, 'json='.$string.'&sapi_key='.$sAPIKey);
使用,从所需的数据构建一个数组

$json = [
        'command'   => $cmd,
        'data'      => $dt,
        'id'        => $i,
        'groupby'   => $gpby
         ];

$data = json_encode($json);
然后进入post字段

curl_setopt($ch, CURLOPT_POSTFIELDS, 'json='.$data.'&sapi_key='.$sAPIKey);
编辑您的呼叫功能,如订单$date将位于第三位,$id将位于第四位

call($myAPIKey, $command, $date, $id, $groupby);
不要手动构建JSON。制作一个数组并使用
json\u encode()
转换它。