首页  >  文章  >  后端开发  >  如何通过PHP和CURL提交多维数组数据?

如何通过PHP和CURL提交多维数组数据?

Susan Sarandon
Susan Sarandon原创
2024-10-23 08:19:29757浏览

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