Lorsqu'ils tentent de soumettre des données à partir d'un formulaire via CURL, les utilisateurs peuvent rencontrer l'erreur « Erreur de conversion de tableau en chaîne ». Cela se produit lors de la publication de tableaux multidimensionnels sur un script PHP exécuté sur un autre serveur. Étant donné que CURLOPT_POSTFIELDS nécessite un tableau, les utilisateurs ne peuvent pas utiliser de méthodes traditionnelles telles que http_build_query().
Pour résoudre ce problème, une fonction personnalisée appelée "http_build_query_for_curl" est nécessaire. Cette fonction parcourt le tableau multidimensionnel et le convertit dans un format adapté à CURL.
<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>
Pour utiliser cette fonction, attribuez le tableau multidimensionnel à une variable et transmettez-la en premier argument à la fonction. Le deuxième argument est un tableau vide qui contiendra les données converties. Le troisième argument est facultatif et spécifie le préfixe des clés du tableau.
<code class="php">$arrays = array( 'name' => array( 'first' => array( 'Natali', 'Yura' ) ) ); http_build_query_for_curl( $arrays, $post ); print_r($post);</code>
La sortie de ce code est :
Array ( [name[first][0]] => Natali [name[first][1]] => Yura )
Ce tableau converti peut désormais être utilisé avec CURLOPT_POSTFIELDS sans rencontrer le erreur de conversion.
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!