Maison >développement back-end >tutoriel php >Comment soumettre des données de tableau multidimensionnel via PHP et CURL ?

Comment soumettre des données de tableau multidimensionnel via PHP et CURL ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-23 08:19:29843parcourir

How to Submit Multidimensional Array Data via PHP and CURL?

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, &amp;$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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn