Bagaimana untuk Menyelesaikan Ralat \'Array to String Conversion\' Apabila Menghantar Array Multidimensi dalam CURL dengan PHP?

Barbara Streisand
Lepaskan: 2024-10-23 08:17:01
asal
737 orang telah melayarinya

How to Solve the

Menghantar Tatasusunan Berbilang Dimensi melalui CURL dan PHP

Apabila menyiarkan data borang yang mengandungi tatasusunan berbilang dimensi menggunakan CURL, menghadapi ralat "Penukaran Tatasusunan kepada rentetan" adalah masalah biasa. Ini berlaku apabila cuba menetapkan CURLOPT_POSTFIELDS dengan tatasusunan yang termasuk tatasusunan.

Memandangkan pengepala Jenis Kandungan mestilah berbilang bahagian/data-bentuk untuk memudahkan pemindahan fail, menukar tatasusunan kepada rentetan pertanyaan atau menggunakan http_build_query() tidak boleh dilaksanakan. Selain itu, mengakses kod hos penerima untuk mensiri dan menyahsiri tatasusunan bukanlah pilihan.

Untuk menyelesaikan isu ini, fungsi tersuai bernama http_build_query_for_curl boleh digunakan. Ia berulang secara berulang melalui tatasusunan, menukarnya kepada format yang sesuai untuk permintaan CURL POST. Tatasusunan yang diubah suai kemudiannya boleh diberikan kepada $post dan diserahkan kepada curl_setopt(), mengelakkan ralat.

Berikut ialah kod untuk fungsi http_build_query_for_curl dan contoh penggunaannya:

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Array to String Conversion\' Apabila Menghantar Array Multidimensi dalam CURL dengan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!