首頁 >後端開發 >php教程 >如何透過PHP和CURL提交多維數組資料?

如何透過PHP和CURL提交多維數組資料?

Susan Sarandon
Susan Sarandon原創
2024-10-23 08:19:29842瀏覽

How to Submit Multidimensional Array Data via PHP and CURL?

使用PHP 和CURL 解決多維數組發布

使用CURL 向遠端PHP 腳本提交表單時,處理時可能會出現問題多維數組數據。由於 CURLOPT_POSTFIELDS 中不支援的結構,經常會出現「陣列到字串轉換」錯誤。

解決這項挑戰的一種方法是使用自訂函數,例如回應中提供的函數:

<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;
        }
    }
}</code>

該函數接受一個陣列作為輸入並遞歸地展平它,建立一個新數組,其中每個值都分配給一個特定的鍵。透過將要發佈的陣列傳遞給此函數,我們獲得了一個具有與 CURLOPT_POSTFIELDS 相容的結構的修改後的陣列。

<code class="php">$arrays = array(
    'name' => array(
        'first' => array(
            'Natali', 'Yura'
        )
    )
);

http_build_query_for_curl( $arrays, $post );</code>

透過使用具有扁平結構的修改後的 $post 數組,我們可以成功提交透過CURL處理多維數據,不會遇到轉換錯誤:

<code class="php">curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post);</code>

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn