Maison >développement back-end >tutoriel php >Comment publier efficacement des tableaux multidimensionnels en utilisant PHP et CURL ?
Dans le développement Web, des scénarios peuvent survenir dans lesquels vous devez soumettre des données de formulaire contenant des tableaux multidimensionnels à un script distant via CURL. Cependant, cette tâche peut présenter des défis en raison des limitations dans la gestion des tableaux multidimensionnels par CURL.
Pour résoudre ce problème, envisagez la solution suivante :
Le nœud du problème réside dans la nécessité de conserver l’en-tête Content-Type multipart/form-data lors de l’envoi d’un fichier avec les données du formulaire. Cette exigence restreint l'utilisation de chaînes de requête ou de fonctions http_build_query().
Pour surmonter cette limitation, nous pouvons utiliser une fonction personnalisée appelée http_build_query_for_curl. Cette fonction parcourt récursivement les tableaux multidimensionnels, les convertissant dans un format compatible avec le paramètre CURLOPT_POSTFIELDS de CURL.
Un exemple d'implémentation de la fonction http_build_query_for_curl est fourni ci-dessous :
<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; } } } $arrays = array( 'name' => array( 'first' => array( 'Natali', 'Yura' ) ) ); http_build_query_for_curl( $arrays, $post ); print_r($post);</code>
En tirant parti de cette fonction, vous pouvez publier efficacement des tableaux multidimensionnels via CURL tout en conservant l'en-tête Content-Type requis.
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!