Wie kann der Fehler „Array-zu-String-Konvertierung' beim Senden mehrdimensionaler Arrays in CURL mit PHP behoben werden?

Barbara Streisand
Freigeben: 2024-10-23 08:17:01
Original
740 Leute haben es durchsucht

How to Solve the

Senden mehrdimensionaler Arrays über CURL und PHP

Beim Posten von Formulardaten, die mehrdimensionale Arrays enthalten, mit CURL tritt ein Fehler bei der „Array-zu-String-Konvertierung“ auf. Dies tritt auf, wenn versucht wird, CURLOPT_POSTFIELDS mit einem Array festzulegen, das Arrays enthält.

Da der Content-Type-Header mehrteilig/Formulardaten sein muss, um die Dateiübertragung zu erleichtern, muss das Array in eine Abfragezeichenfolge konvertiert oder http_build_query() verwendet werden. ist nicht machbar. Darüber hinaus ist der Zugriff auf den Code des empfangenden Hosts zum Serialisieren und Deserialisieren des Arrays keine Option.

Um dieses Problem zu beheben, kann eine benutzerdefinierte Funktion namens http_build_query_for_curl eingesetzt werden. Es durchläuft das Array rekursiv und konvertiert es in ein Format, das für CURL POST-Anfragen geeignet ist. Das geänderte Array kann dann $post zugewiesen und an curl_setopt() übergeben werden, wodurch der Fehler vermieden wird.

Hier ist der Code für die Funktion http_build_query_for_curl und ein Beispiel für ihre Verwendung:

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

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Array-zu-String-Konvertierung' beim Senden mehrdimensionaler Arrays in CURL mit PHP behoben werden?. 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!