Wielowymiarowe tablice a POST via CURL

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.

Ten wpis umieszczono w kategorii PHP, Programowanie. Możesz dodać go do zakładek permalink. Dodaj komentarz lub dodaj odpowiedź (trackback): Trackback URL.

2 Komentarze

  1. Opublikowano 29 July, 2009 at 11:18 | Permalink

    A nie lepiej po prostu podstawić stringa stworzonego przez http_build_query?

  2. radmen
    Opublikowano 30 July, 2009 at 08:35 | Permalink

    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ć.

Skomentuj

Twój adres email nie zostanie opublikowany i nie będzie rozpowszechniany. Wymagane pola są oznaczone *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>