I have a strange issue.
JavaScript
x
$arr = array(
'my key 1' => 'Some data 1',
'my_key_2' => 'Some data 2',
'my key 3' => 'Some data 3',
);
I am sending this data using cURL …
JavaScript
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
On receiveing end, I am just printing it back.
echo print_r($_POST);
Which prints it out as
JavaScript
array(
[0] => 0,
[my_key_2] => Some data 2,
)
It’s removing array keys with spacing.
Any ideas, what could be causing it?
Advertisement
Answer
Your spaces in params are replaced with +
when you use http_build_query()
,
try providing an array without this function when you set the CURLOPT_POSTFIELDS
option.
You can read about it in docs… https://www.php.net/manual/ru/function.http-build-query.php#95784