Dalam pembangunan web, senario mungkin timbul di mana anda perlu menyerahkan data borang yang mengandungi tatasusunan berbilang dimensi kepada skrip jauh melalui CURL. Walau bagaimanapun, tugasan ini boleh memberikan cabaran disebabkan oleh pengehadan dalam pengendalian tatasusunan berbilang dimensi oleh CURL.
Untuk mengatasinya, pertimbangkan penyelesaian berikut:
Inti isu ini terletak pada keperluan untuk mengekalkan pengepala Jenis Kandungan berbilang bahagian/borang-data semasa menghantar fail bersama-sama dengan data borang. Keperluan ini mengehadkan penggunaan rentetan pertanyaan atau fungsi http_build_query().
Untuk mengatasi pengehadan ini, kami boleh menggunakan fungsi tersuai yang dipanggil http_build_query_for_curl. Fungsi ini merentasi tatasusunan berbilang dimensi secara rekursif, menukarnya kepada format yang serasi dengan parameter CURLOPT_POSTFIELDS CURL.
Contoh pelaksanaan fungsi http_build_query_for_curl disediakan di bawah:
Dengan memanfaatkan fungsi ini, anda boleh menyiarkan tatasusunan berbilang dimensi dengan berkesan melalui CURL sambil mengekalkan pengepala Jenis Kandungan yang diperlukan.<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; } } } $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 Menyiarkan Tatasusunan Berbilang Dimensi Dengan Berkesan Menggunakan PHP dan CURL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!