【发布时间】:2009-02-06 00:26:22
【问题描述】:
在 php 中使用 cURL 在 POST 中发送数据时,您可以将 cURL 选项 CURLOPT_POSTFIELDS 设置为数据
这是一些示例数据
array('foo'=>'bar','ninja'=>'pirate')
现在我很困惑。
我见过的一半示例代码对数组进行了一些预处理,并将数据编码和压缩成格式正确的 url 字符串。
将我们的数据数组转换为:"foo=bar&ninja=pirate",然后将该字符串设置为 CURLOPT_POSTFIELDS 的数据
但我看到的另一半示例只是将数组直接传递给 CURLOPT_POSTFIELDS 就可以了。
令人困惑的部分在于他们都完成了这项工作。鉴于它们都有效,我认为任何一个都不能说是“正确的”。
我可以看到执行字符串方法的唯一优点是您可以在 url 中设置一个没有像 "foo=bar&awesome&ninja=pirate" 这样的值的参数,我不知道您是否可以通过关联数组来做到这一点,因为您不能有没有值的键(我不认为),但这似乎是浪费内存,因为您将整个数组复制到一个字符串中
【问题讨论】:
-
你不能设置一个没有值的数组项,但是你可以设置一个值为空字符串或null的,在这种情况下可能是等价的。