Bagaimana untuk Menghantar Tatasusunan dengan Betul dalam Permintaan CURL POST?

Susan Sarandon
Lepaskan: 2024-11-02 01:59:30
asal
661 orang telah melayarinya

How to Properly Submit Arrays in cURL POST Requests?

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.'&amp;'; }
rtrim($fields_string, '&amp;');

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

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

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

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

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!