Maison > développement back-end > tutoriel php > Comment publier des tableaux multidimensionnels via PHP et CURL ?

Comment publier des tableaux multidimensionnels via PHP et CURL ?

Mary-Kate Olsen
Libérer: 2024-10-23 08:16:02
original
518 Les gens l'ont consulté

How to Post Multidimensional Arrays via PHP and CURL?

Publication de tableaux multidimensionnels avec PHP et CURL

Problème :

Publication d'un tableau de formulaire multidimensionnel via CURL dans un script PHP sur un autre hôte entraîne une erreur « Conversion de tableau en chaîne ». Le troisième argument de curl_setopt() doit être un tableau pour définir l'en-tête Content-Type sur multipart/form-data en raison du téléchargement de fichier. Cependant, il semble que CURLOPT_POSTFIELDS ne prenne pas en charge les tableaux multidimensionnels.

Solution :

Malgré la limitation de CURLOPT_POSTFIELDS, il existe une solution de contournement utilisant la fonction http_build_query_for_curl(). Cette fonction convertit de manière récursive un tableau multidimensionnel en un tableau plat adapté à curl_setopt().

Exemple de code :

<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;
        }
    }
}

$arrays = array(
    'name' => array(
        'first' => array(
            'Natali', 'Yura'
        )
    )
);


http_build_query_for_curl( $arrays, $post );

print_r($post);</code>
Copier après la connexion

Sortie :

Array
(
    [name[first][0]] => Natali
    [name[first][1]] => Yura
)
Copier après la connexion

Ce tableau plat peut ensuite être transmis à curl_setopt() comme troisième argument, publiant avec succès le tableau multidimensionnel via CURL.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal