【问题标题】:How to serialize an array (array to query string) using PHP如何使用 PHP 序列化数组(数组到查询字符串)
【发布时间】:2014-02-05 23:24:29
【问题描述】:

我有一个来自 $_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);

有什么想法吗?

提前致谢。

【问题讨论】:

  • 如果问题不清楚,或者即使我应该删除问题,请告诉我。而不是仅仅输入-1。再次感谢。
  • 对于 PHP 解决方案,http_build_query() 可能会有所帮助:PHP Function To Build Query String From Array
  • @rafaelsoufraz - 谢谢,但目标路径不在我的控制之下,目标中的 $_POST 应该是 $_POST 而不是它的 base64 编码,所以我不能使用这样的代码。` $array = 数组(1,2,3); $encoded = json_encode($array); $decoded = json_decode($encoded); print_r($decoded);`

标签: php arrays curl


【解决方案1】:

你可以使用http_build_query:

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

通知

看起来很漂亮,但是使用这种方法要小心 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 中得到预期的变量。

【讨论】:

  • +1 谢谢。请发布完整的答案,我会接受你的
  • 这是英语俚语,意为“意想不到的场景”
【解决方案2】:

我认为你可以这样做:

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

【讨论】:

    【解决方案3】:

    如果我理解,你可以使用 json。

    $array = array(1,2,3);
    $encoded = json_encode($array);
    $decoded = json_decode($encoded);
    print_r($decoded); //Look to it
    

    如果不是,可以是:

    $array = array(1,2,3);
    echo http_build_query($array); //Look to it
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      相关资源
      最近更新 更多