Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengelakkan \'Array to String Conversion Error\' Apabila Menyiarkan Tatasusunan Berbilang Dimensi melalui PHP dan CURL?

Bagaimana untuk Mengelakkan \'Array to String Conversion Error\' Apabila Menyiarkan Tatasusunan Berbilang Dimensi melalui PHP dan CURL?

DDD
Lepaskan: 2024-10-23 08:12:02
asal
451 orang telah melayarinya

How to Avoid the

Menyiarkan Tatasusunan Berbilang Dimensi dengan PHP dan CURL

Apabila cuba menyerahkan data daripada borang melalui CURL, pengguna mungkin menghadapi "ralat penukaran Tatasusunan kepada rentetan." Ini berlaku apabila menyiarkan tatasusunan berbilang dimensi kepada skrip PHP yang dijalankan pada pelayan yang berbeza. Memandangkan CURLOPT_POSTFIELDS memerlukan tatasusunan, pengguna tidak boleh menggunakan kaedah tradisional seperti http_build_query().

Penyelesaian

Untuk menyelesaikan isu ini, fungsi tersuai yang dipanggil "http_build_query_for_curl" diperlukan. Fungsi ini merentasi tatasusunan berbilang dimensi dan menukarnya kepada format yang sesuai untuk CURL.

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

Penggunaan

Untuk menggunakan fungsi ini, tetapkan tatasusunan berbilang dimensi kepada pembolehubah dan hantarkannya sebagai yang pertama hujah kepada fungsi. Argumen kedua ialah tatasusunan kosong yang akan menyimpan data yang ditukar. Argumen ketiga adalah pilihan dan menentukan awalan untuk kekunci tatasusunan.

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


http_build_query_for_curl( $arrays, $post );

print_r($post);</code>
Salin selepas log masuk

Keluaran kod ini ialah:

Array
(
    [name[first][0]] => Natali
    [name[first][1]] => Yura
)
Salin selepas log masuk

Tatasusunan yang ditukar ini kini boleh digunakan dengan CURLOPT_POSTFIELDS tanpa menghadapi ralat penukaran.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan \'Array to String Conversion Error\' Apabila Menyiarkan Tatasusunan Berbilang Dimensi melalui PHP dan CURL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan