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
Libérer: 2024-10-23 08:19:29
original
842 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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