Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan Ralat \'Array to String Conversion\' Apabila Menghantar Array Multidimensi dalam CURL dengan PHP?

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

Barbara Streisand
Barbara Streisandasal
2024-10-23 08:17:01832semak imbas

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>

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!

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