【发布时间】:2020-11-27 18:25:22
【问题描述】:
我通过 PHP CURL 做了大量的发布。通常,我们发布到期望直接 HTTP POST 或 JSON 的服务器。因此,我们将参数构建为一个数组...然后 json_encode 数组或 http_build_query 数组...并将结果发布到 CURLOPT_POSTFIELDS。有人为我们编写了一些网页……他们通过将数组 $_POST 发布到我们的服务器来通过辅助页面发布表单数据……它成功了!当然,我已经查看了 CURLOPT_POSTFIELDS 的规范……它可以采用字符串或数组。所以,我很困惑......为什么协议似乎是使用 http_build_query 将数组转换为字符串,而人们可以简单地发布数组(至少如果它是一维的)?这仅仅是因为 http_build_query.. 的 URL 编码附带好处还是有其他原因?
附:当数组包含一个完整 URL 的参数时,即带有查询,例如http://example.com?a=1&b=2&c=3,服务器会很好地读取数据,即使该参数没有经过 URL 编码......或者发布一个数组会自动对元素的元素进行 urlencode数组?
【问题讨论】:
标签: php arrays string curl php-curl