mirror of
https://github.com/php-curl-class/php-curl-class.git
synced 2026-08-30 04:01:47 +00:00
Fix #4: Arrays inside the data array loses its indexes
This commit is contained in:
+5
-2
@@ -84,12 +84,15 @@ class Curl {
|
||||
function http_build_multi_query($data, $key=NULL) {
|
||||
$query = array();
|
||||
|
||||
$is_array_assoc = is_array_assoc($data);
|
||||
|
||||
foreach ($data as $k => $value) {
|
||||
if (is_string($value)) {
|
||||
$query[] = urlencode(is_null($key) ? $k : $key) . '=' . rawurlencode($value);
|
||||
$brackets = $is_array_assoc ? '[' . $k . ']' : '[]';
|
||||
$query[] = urlencode(is_null($key) ? $k : $key . $brackets) . '=' . rawurlencode($value);
|
||||
}
|
||||
else if (is_array($value)) {
|
||||
$query[] = $this->http_build_multi_query($value, $k . '[]');
|
||||
$query[] = $this->http_build_multi_query($value, $k);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,20 @@ class CurlTest extends PHPUnit_Framework_TestCase {
|
||||
)) === 'post');
|
||||
}
|
||||
|
||||
public function testPostAssociativeArrayData() {
|
||||
$test = new Test();
|
||||
$this->assertTrue($test->server('POST', array(
|
||||
'test' => 'post_multidimensional',
|
||||
'username' => 'myusername',
|
||||
'password' => 'mypassword',
|
||||
'more_data' => array(
|
||||
'param1' => 'something',
|
||||
'param2' => 'other thing',
|
||||
'param3' => '123',
|
||||
),
|
||||
)) === 'test=post_multidimensional&username=myusername&password=mypassword&more_data%5Bparam1%5D=something&more_data%5Bparam2%5D=other%20thing&more_data%5Bparam3%5D=123');
|
||||
}
|
||||
|
||||
public function testPostMultidimensionalData() {
|
||||
$test = new Test();
|
||||
$this->assertTrue($test->server('POST', array(
|
||||
|
||||
Reference in New Issue
Block a user