如何透過 PHP 和 CURL 發布多維數組?

Mary-Kate Olsen
發布: 2024-10-23 08:16:02
原創
424 人瀏覽過

How to Post Multidimensional Arrays via PHP and CURL?

使用PHP 和CURL 發布多維數組

問題:

透過CURL 將多維表單腳本組發佈到PHP 腳本組在數量組不同的主機上會導致“數組到字串轉換”錯誤。由於檔案上傳,curl_setopt() 的第三個參數必須是數組,用於將 Content-Type 標頭設為 multipart/form-data。但是,CURLOPT_POSTFIELDS 似乎不支援多維數組。

解決方案:

儘管 CURLOPT_POSTFIELDS 有限制,但有一個使用 http_build_query_for_curl() 函數的解決方法。此函數遞歸地將多維數組轉換為適合curl_setopt()的平面數組。

範例程式碼:

<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>
登入後複製

輸出:

Array
(
    [name[first][0]] => Natali
    [name[first][1]] => Yura
)
登入後複製

這個平面數組可以當第三個參數傳遞給curl_setopt(),透過CURL 成功發布多維數組。

以上是如何透過 PHP 和 CURL 發布多維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!