Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghantar Data Tatasusunan Berbilang Dimensi melalui PHP dan CURL?

Bagaimana untuk Menghantar Data Tatasusunan Berbilang Dimensi melalui PHP dan CURL?

Susan Sarandon
Susan Sarandonasal
2024-10-23 08:19:29757semak imbas

How to Submit Multidimensional Array Data via PHP and CURL?

Menyelesaikan Penyiaran Tatasusunan Berbilang Dimensi dengan PHP dan CURL

Apabila menyerahkan borang menggunakan CURL ke skrip PHP jauh, isu mungkin timbul apabila berurusan dengan data tatasusunan pelbagai dimensi. Ralat "Penukaran tatasusunan kepada rentetan" sering berlaku disebabkan oleh struktur yang tidak disokong dalam CURLOPT_POSTFIELDS.

Salah satu cara untuk menangani cabaran ini ialah menggunakan fungsi tersuai, seperti yang disediakan dalam respons:

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

Fungsi ini mengambil tatasusunan sebagai input dan meratakannya secara rekursif, mencipta tatasusunan baharu di mana setiap nilai diperuntukkan kepada kunci tertentu. Dengan menghantar tatasusunan untuk disiarkan ke fungsi ini, kami memperoleh tatasusunan yang diubah suai dengan struktur yang serasi untuk CURLOPT_POSTFIELDS.

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

http_build_query_for_curl( $arrays, $post );</code>

Dengan menggunakan tatasusunan $post yang diubah suai, yang mempunyai struktur yang diratakan, kami boleh berjaya menyerahkan data berbilang dimensi melalui CURL tanpa menghadapi ralat penukaran:

<code class="php">curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);</code>

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data Tatasusunan Berbilang Dimensi melalui PHP dan CURL?. 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