Heim  >  Artikel  >  Backend-Entwicklung  >  Wie übermittle ich mehrdimensionale Array-Daten über PHP und CURL?

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

Susan Sarandon
Susan SarandonOriginal
2024-10-23 08:19:29757Durchsuche

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>

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>

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>

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!

Stellungnahme:
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