php - 如何使用 PHP 序列化数组(数组到查询字符串)

标签 php arrays curl

<分区>

我有一组来自 $_POST 的数据,我想通过 curl 将它们发送到另一个页面。

 curl_setopt($s,CURLOPT_POST,true);
 curl_setopt($s,CURLOPT_POSTFIELDS,$this->_postFields);

$this->_postFields 必须是像 a=2&b=t 这样的字符串吧?
因此,如果我想使用 curl 将数据数组发送到另一个页面,我必须将数组转换为查询字符串吗?

我应该如何使用 PHP 来实现?

♦我尝试了 serialize()unserialize() 但它们的格式与查询字符串的格式不一样吗?
所以我该怎么做? (我需要在 jQuery 中使用类似 .serialize() 的东西来处理数组而不是 FORM)

♦ 并且目标路径不在我的控制之下,目标中的 $_POST 应该是 $_POST 而不是它的 base64 编码,所以我不能使用这样的代码。

$array = array(1,2,3);
$encoded = json_encode($array);
$decoded = json_decode($encoded);
print_r($decoded);

有什么想法吗?

提前致谢。

最佳答案

您可以使用 http_build_query :

curl_setopt($s, CURLOPT_POSTFIELDS, http_build_query($this->_postFields));

NOTICE

看起来很漂亮,但是使用这种方式要注意url编码,看下图:

$_POST["some value"]='value1'; // " " between
$_POST["next value"]='value2'; // " " between

$url = http_build_query($_POST);

echo $url;

// OUTPUT 
some+value=value1&next+value=value2

当然,在发送这个 $url 之后,我们不会从 $_POST 中得到预期的变量。

关于php - 如何使用 PHP 序列化数组(数组到查询字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172208/

相关文章:

php - 是否可以使用 MySQL 触发器发送电子邮件?

php - 在 IE6 中下载文件

php - 如何使用这个 jquery 函数关闭模态窗口?

c++ - 只有数组的一个元素被传递给函数。 C++

php - 以编程方式评估域是否具有 Google Apps

php - 谁能给我一个 PHP 的 CURLFile 类的例子?

php - 带有 JSON、PHP 的 iOS

javascript - 迭代并计算数组内对象内的对象

arrays - zsh 中的本地数组

python - pycurl 失败但 curl(来自 bash)在 ubuntu 中工作