ホームページ >バックエンド開発 >PHPチュートリアル >PHP と CURL を使用して多次元配列を効果的にポストするにはどうすればよいですか?

PHP と CURL を使用して多次元配列を効果的にポストするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-23 08:18:29738ブラウズ

How to Post Multidimensional Arrays Effectively Using PHP and CURL?

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, &amp;$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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。