Ho problemi a registrare i dati dei moduli tramite CURL su uno script PHP ricevente situato su un host diverso.Invio di array multidimensionali con PHP e CURL
ottengo un errore Array to string conversion
Questo è print_r
della matrice sto postando:
Array
(
[name] => Array
(
[0] => Jason
[1] => Mary
[2] => Lucy
)
[id] => 12
[status] => local
[file] => @/test.txt
)
Questa è la linea l'errore si verifica:
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);
Il terzo argomento deve essere essere un array perché ho bisogno dell'intestazione Content-Type
da impostare su multipart/form-data
poiché sto inviando un file tramite questo stesso array, quindi non posso convertire l'array in una stringa di query o utilizzare http_build_query()
.
Inoltre, non ho accesso al codice sull'host di ricezione, quindi non posso serializzare e non serializzare l'array.
Sto supponendo che il valore della chiavenome essendo un array è la causa di questo errore, sto anche assumendo che CURLOPT_POSTFIELDS
non supporta gli array multidimensionali. C'è un altro modo per aggirare questo o sono condannato?
Grazie in anticipo!
Grazie! In realtà non sapevo di poterlo fare. Ho aggiunto 'CURLOPT_HTTPHEADER' e ho passato il mio array in' http_build_query() '. Lavoro fatto! –
Grazie per aver menzionato 'http_build_query()'. Ha funzionato come un fascino per me! – mccbala
Nel mio caso questo non funziona. L'errore è ** Avviso: limite mancante nei dati POST multipart/form-data in Unknown sulla linea 0 **. Ciò che ha funzionato per me è stato [questo post] (http://stackoverflow.com/a/8224117/1057527) di Khristenko Yura – machineaddict