Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menghantar Tatasusunan dengan Betul dalam Permintaan CURL POST?
Menyokong Tatasusunan dalam Permintaan CURL POST
Dalam pertanyaan ini, pengguna mendapatkan panduan tentang cara menggunakan tatasusunan dalam permintaan cURL POST. Apabila menggunakan tatasusunan dalam kod yang disediakan, hanya nilai pertama sedang diserahkan. Meneroka kod yang diserahkan, kebimbangan berikut dikenal pasti:
<code class="php">//extract data from the post extract($_POST); //set POST variables $url = 'http://api.example.com/api'; $fields = array( 'username' => "annonymous", 'api_key' => urlencode("1234"), 'images[]' => urlencode(base64_encode('image1')), 'images[]' => urlencode(base64_encode('image2')) ); //url-ify the data for the POST foreach($fields as $key => $value) { $fields_string .= $key.'='.$value.'&'; } rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //execute post $result = curl_exec($ch); echo $result; //close connection curl_close($ch);</code>
Struktur Tatasusunan Salah:
Isu utama terletak pada struktur tatasusunan yang salah di:
<code class="php">'images[]' => urlencode(base64_encode('image1')), 'images[]' => urlencode(base64_encode('image2'))</code>
Pendekatan ini tidak akan mencipta tatasusunan dalam PHP; sebaliknya, setiap kekunci 'imej[]' akan menimpa yang sebelumnya.
Struktur Tatasusunan Betul (Menggunakan http_build_query):
Untuk membina tatasusunan dengan betul, pertimbangkan untuk menggunakan Fungsi http_build_query:
<code class="php">$fields = array( 'username' => "annonymous", 'api_key' => urlencode("1234"), 'images' => array( urlencode(base64_encode('image1')), urlencode(base64_encode('image2')) ) ); $fields_string = http_build_query($fields);</code>
Dengan pengubahsuaian ini, $fields_string kini akan mewakili tatasusunan dengan berbilang nilai untuk kunci 'imej' dengan betul.
Kod Disemak:
Menggabungkan pelarasan ini, kod yang disemak akan dipaparkan seperti berikut:
<code class="php">//extract data from the post extract($_POST); //set POST variables $url = 'http://api.example.com/api'; $fields = array( 'username' => "annonymous", 'api_key' => urlencode("1234"), 'images' => array( urlencode(base64_encode('image1')), urlencode(base64_encode('image2')) ) ); //url-ify the data for the POST $fields_string = http_build_query($fields); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //execute post $result = curl_exec($ch); echo $result; //close connection curl_close($ch);</code>
Dengan melaksanakan pengubahsuaian ini, sokongan untuk tatasusunan dalam permintaan cURL POST dicapai dengan berkesan, memastikan semua nilai dihantar ke pelayan seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Tatasusunan dengan Betul dalam Permintaan CURL POST?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!