【问题标题】:PHP Convert Multi-dimensional Array to Query String for curl POST [duplicate]PHP将多维数组转换为curl POST的查询字符串[重复]
【发布时间】:2017-09-02 06:39:15
【问题描述】:

我知道 curl 的 POSTFIELDS 选项将采用查询字符串或关联数组。

curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST);

但是假设我有一个页面,输入如下:

<input type="text" name="address[line1]">

PHP 将创建一个多维数组$_POST['address']['line1'],不幸的是curl_setopt 不知道如何处理。是否有一些简单的方法可以将可能是多维的关联数组转换为有效的 HTTP 查询字符串?

或者,是否有某种方法可以访问原始 HTTP 后查询字符串,就像使用 get $_SERVER['QUERY_STRING'] 一样?

【问题讨论】:

  • 是的,这正是我想要的。非常感谢!

标签: php curl http-post


【解决方案1】:

您可以使用http_build_query() 创建一个可以传递给 cURL 的字符串:

<?php
$posted = ["foo"=>"bar", "address"=>["line1"=>"foo"]];
$string = http_build_query($posted);

echo $string;

输出:

foo=bar&address%5Bline1%5D=foo

您也可以使用input:// get access to the raw POST data,但这很少需要,除非处理非 HTML 数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2016-06-23
    • 2015-03-22
    相关资源
    最近更新 更多