【问题标题】:How do I pass a multi-dimensional array as a GET parameter in PHP?如何在 PHP 中将多维数组作为 GET 参数传递?
【发布时间】:2010-04-21 19:44:43
【问题描述】:

我有以下代码。

$connect  = new Connection ();
$response = $connect->putFile($fileName, $destination);
header("Location: /test.php?response=" . $response);

当我使用响应调用标头时,文件将停止执行,但控制台中不会出现错误...我在想这个数组可能需要为 url 编码?

如果是这样怎么办?

谢谢

【问题讨论】:

    标签: php arrays header get multidimensional-array


    【解决方案1】:

    如果$response 是一个多维数组,您最好通过serialize()ing 并 urlencode() 获取结果。它增加了一些开销,但不会太多。

    但是,通过 GET 传输数据受到严重限制。数据量不应超过 1-2 KB。来源:例如here

    如果您的数据可能超过该限制,您应该考虑通过 POST 传输数据,或者,如果不可能,则在会话或其他类型的持久存储中传输数据。

    【讨论】:

      【解决方案2】:

      使用http_build_query()

      http://us.php.net/http-build-query

      【讨论】:

      • 我想过使用http_build_query,但问题是这只会将数组的每个值都作为get参数。对于一维数组,这可能很好,但对于多维数组,特别是如果每​​次响应都不同或者如果它包含多个数组,如 [0] => SimpleXMLElement Object () [1] => SimpleXMLElement Object ( ) [2] => SimpleXMLElement 对象 () [3] => SimpleXMLElement 对象 () ...
      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2012-11-24
      • 1970-01-01
      • 2011-06-15
      相关资源
      最近更新 更多