Résolution de la publication de tableaux multidimensionnels avec PHP et CURL
Lors de la soumission d'un formulaire à l'aide de CURL à un script PHP distant, des problèmes peuvent survenir lors du traitement données de tableau multidimensionnel. Une erreur de « Conversion de tableau en chaîne » se produit souvent en raison de la structure non prise en charge dans CURLOPT_POSTFIELDS.
Une façon de relever ce défi consiste à utiliser une fonction personnalisée, telle que celle fournie dans la réponse :
<code class="php">function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) { if ( is_object( $arrays ) ) { $arrays = get_object_vars( $arrays ); } foreach ( $arrays AS $key => $value ) { $k = isset( $prefix ) ? $prefix . '[' . $key . ']' : $key; if ( is_array( $value ) OR is_object( $value ) ) { http_build_query_for_curl( $value, $new, $k ); } else { $new[$k] = $value; } } }</code>
Cette fonction prend un tableau en entrée et l'aplatit récursivement, créant un nouveau tableau où chaque valeur est affectée à une clé spécifique. En passant les tableaux à poster à cette fonction, nous obtenons un tableau modifié avec une structure compatible pour CURLOPT_POSTFIELDS.
<code class="php">$arrays = array( 'name' => array( 'first' => array( 'Natali', 'Yura' ) ) ); http_build_query_for_curl( $arrays, $post );</code>
En utilisant le tableau $post modifié, qui a une structure aplatie, nous pouvons soumettre avec succès les données multidimensionnelles via CURL sans rencontrer l'erreur de conversion :
<code class="php">curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!