PHP のcurlを使用すると、HTTP外部リクエストを開始できますが、POSTリクエストを開始する場合、curlレベルからは、いわゆる配列の概念はなく、配列を直接渡すことはできません。データを送信するためのより一般的な形式は、実際にはキーと値のペアです。
したがって、まず配列を渡す必要がある理由を知る必要があります。
HTTP プロトコルは、HTTP リクエストの 3 つの部分 (ステータス行、リクエスト ヘッダー、メッセージ本文) を指定します。実際には、メッセージ本文に指定された形式はありません。一般的に使用されるいくつかのリクエスト ヘッダーの Content-Type は
application/x-www-form-urlencodedmultipart/form-dataapplication/jsontext/xml
です。したがって、質問に対する答えはデータ型によって異なります。どのような種類のリクエストを送信する必要があるか。
一般的なcurl POSTリクエストは次のとおりです:
curl -X POST --data 'params[]=check1¶ms[]=check2' 'http://jayxhj.com/test/curl.php'
上記のリクエストは、application/x - のContent-Typeを送信します。 www-form-urlencoded リクエストのリクエスト本文は params[]=check1¶ms[]=check2 で、サーバー側では $_POST を使用して取得するだけです。
次に、curl に戻ります。CURLOPT_POSTFIELDS の VALUE オプションをキー/値ペアに設定するだけで、配列をサーバーに渡すことができます。文字列であり、$ _POST によって直接使用されます。
<?php$curl = curl_init();curl_setopt($curl, CURLOPT_URL, 'http://jayxhj.com/test/curl.php');curl_setopt($curl, CURLOPT_HEADER, 0);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$array = [ 'jayxhj', 'pt'];$str = http_build_query($array);curl_setopt($curl, CURLOPT_POSTFIELDS, $str);$data = curl_exec($curl);curl_close($curl);var_dump($data);