Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menghantar Data Tatasusunan Berbilang Dimensi melalui PHP dan 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, &$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!