Maison > développement back-end > tutoriel php > Comment éviter l'« Erreur de conversion de tableau en chaîne » lors de la publication de tableaux multidimensionnels via PHP et CURL ?

Comment éviter l'« Erreur de conversion de tableau en chaîne » lors de la publication de tableaux multidimensionnels via PHP et CURL ?

DDD
Libérer: 2024-10-23 08:12:02
original
516 Les gens l'ont consulté

How to Avoid the

Publication de tableaux multidimensionnels avec PHP et CURL

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().

Solution

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, &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

Utilisation

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

La sortie de ce code est :

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal