ホームページ >バックエンド開発 >PHPチュートリアル >PHP と CURL を使用して多次元配列を効果的にポストするにはどうすればよいですか?
Web 開発では、多次元配列を含むフォーム データを CURL 経由でリモート スクリプトに送信する必要があるシナリオが発生することがあります。ただし、このタスクでは、CURL による多次元配列の処理の制限により問題が発生する可能性があります。
これに対処するには、次の解決策を検討してください。
問題の核心は、フォーム データとともにファイルを送信する際に multipart/form-data Content-Type ヘッダーを維持する必要があることにあります。この要件により、クエリ文字列または http_build_query() 関数の使用が制限されます。
この制限を克服するには、http_build_query_for_curl というカスタム関数を利用できます。この関数は、多次元配列を再帰的に走査し、CURL の CURLOPT_POSTFIELDS パラメータと互換性のある形式に変換します。
http_build_query_for_curl 関数の実装例を以下に示します。
<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>
この機能を利用すると、必要な Content-Type ヘッダーを維持しながら、CURL 経由で多次元配列を効果的にポストできます。
以上がPHP と CURL を使用して多次元配列を効果的にポストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。