Autor Zpráva
nethor
Profil
Zdravím, pokouším se odeslat vícerozměrné pole pomocí Curl metodou $_POST.
vnořené pole je však převedeno na string "Array".

Na netu jsem našel pouze řešení pomocí serialize() / unserialize(),
tomu bych se ale rád vyhnul, někdy bývá problém, myslím s \(backslash) a data nejdou rozbalit.

Mám podezření, že mi uniká nějaké nastavení curl_setopt.

Jde to nějak provést?

použitý kód:
$init = curl_init();    
curl_setopt( $init, CURLOPT_URL, EXPORT );
curl_setopt( $init, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));    
curl_setopt( $init, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt( $init, CURLOPT_POST, 1 );
curl_setopt( $init, CURLOPT_POSTFIELDS, $data );
$exec = curl_exec( $init );
 


PS: zvláštní je, že $data = array( 'a' => 'jedna', 'b' => 'dva', 'c[d]' => 'tři', 'c[e]' => 'čtyři' ); projde OK.
Jan Tvrdík
Profil
nethor:
To bude hádám tím, že HTTP protokol nic jako pole přenášet neumí. Takže bude pravděpodobně potřeba použít ten zápis uvedený dole.
nethor
Profil
PS:
Metoda $_POST není podmínkou, v podstatě jen potřebuji odeslat víceroměrné pole na jiný server.


Jan Tvrdík:
Normální odeslání post formuláře přeci snad jde přes http a přenáší pole , ba i soubory.

Zápis uvedený dole je jen příklad, dat je mnohem víc musím je zpracovat hromadně.
Jan Tvrdík
Profil
nethor:
Nikoliv. Z pohledu HTTP protokolu nemají položky c[d] a c[e] nic společného. To, že jsou interpretovány jako pole je záležitost PHP.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0