$data = [
'a' => 1,
'b' => 2,
'c' => 3,
];
//中略
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
//中略
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
print curl_getinfo($ch, CURLINFO_HEADER_OUT); //Content-Type: application/x-www-form-urlencoded; boundary=***
//中略
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data, '', '&') );
print curl_getinfo($ch, CURLINFO_HEADER_OUT); //Content-Type: application/x-www-form-urlencoded
はいくそー。
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded') );
って設定しておいても一緒。
仕様考えればそうなんだろうけど、REST APIによっては任意のContent-Typeしか受け入れなくなっていたりするので注意しましょうって話。