Dzisiaj odbyliśmy małą walkę z wysłaniem metodą POST tablicy wielowymiarowej. Problemem było to, że CURL konwertował tablicę typu:
array( 'foo' => 'bar', 'bah' => array( 1 => 'sth', ), );
do:
array( 'foo' => 'bar', 'bah' => 'Array', );
Najwyraźniej PHPowy CURL spłaszcza takie tablice, robiąc straszne zamieszanie :) Rozwiązanie jest dość banalne. Trzeba “ręcznie” spłaszczyć taką tablicę do formatu:
array( 'foo' => 'bar', 'bah[1]' => 'sth', );
W ten sposób odebrane dane będą identyczne z tymi co wysłano.
2 Komentarze
A nie lepiej po prostu podstawić stringa stworzonego przez http_build_query?
eRIZ: sposób w jaki to się zrobi jest dowolny :) Ja napisałem najbardziej łopatologiczną wersję tylko po to, aby wyjaśnić jak problem rozwiązać.