Wie übermittle ich mehrdimensionale Array-Daten über PHP und CURL?

Susan Sarandon
Freigeben: 2024-10-23 08:19:29
Original
756 Leute haben es durchsucht

How to Submit Multidimensional Array Data via PHP and CURL?

Auflösen mehrdimensionaler Array-Postings mit PHP und CURL

Beim Senden eines Formulars mit CURL an ein Remote-PHP-Skript können bei der Bearbeitung Probleme auftreten mehrdimensionale Array-Daten. Aufgrund der nicht unterstützten Struktur in CURLOPT_POSTFIELDS tritt häufig ein Fehler beim Konvertieren eines Arrays in einen String auf.

Eine Möglichkeit, diese Herausforderung zu bewältigen, besteht darin, eine benutzerdefinierte Funktion zu verwenden, wie beispielsweise die in der Antwort bereitgestellte:

<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>
Nach dem Login kopieren

Diese Funktion verwendet ein Array als Eingabe und reduziert es rekursiv, wodurch ein neues Array erstellt wird, in dem jeder Wert einem bestimmten Schlüssel zugewiesen wird. Indem wir die zu postenden Arrays an diese Funktion übergeben, erhalten wir ein modifiziertes Array mit einer kompatiblen Struktur für CURLOPT_POSTFIELDS.

<code class="php">$arrays = array(
    'name' => array(
        'first' => array(
            'Natali', 'Yura'
        )
    )
);

http_build_query_for_curl( $arrays, $post );</code>
Nach dem Login kopieren

Durch die Verwendung des modifizierten $post-Arrays, das eine abgeflachte Struktur hat, können wir erfolgreich senden die mehrdimensionalen Daten über CURL, ohne dass der Konvertierungsfehler auftritt:

<code class="php">curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übermittle ich mehrdimensionale Array-Daten über PHP und CURL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!