在两个php文件之间传递数组

时间:2012-04-21 16:10:57

标签: php redirect header params

我有一个需要重定向到另一个的php文件,但我需要将一个数组传递给第二个文件。我怎么能这样做。

我知道这是错的,但我需要与此逻辑相似的东西。

<?php 
       $arr = array('this'=>'is', 'some'=>'stuff');
       header("someurl.php", vals=>$arr);
 ?>

4 个答案:

答案 0 :(得分:7)

使用http_build_query

header("Location: someurl.php?" . http_build_query($arr));

答案 1 :(得分:5)

这不是你如何做标题。它必须是

header("Location: someurl.php?vals=$arr");

然而,这只会生成URL

someurl.php?vals=Array

请注意,重定向本质上无法执行POST。它将导致新的GET请求,这意味着您必须在URL中传递数据。如果你有一个非常大的网址,你几乎可以保证丢失大部分网址,因为网址有长度限制。

但是,如果它很短,你可以试试:

$url = 'someurl.php?vals=' . url_encode(serialize($arr));
header("Location: $url");

并希望它有效。

答案 2 :(得分:4)

如果您不想公开$数组,则必须使用PHP inbuild session支持。

session_start(); // DO CALL ON TOP OF BOTH PAGES
$_SESSION['array'] = $array;
echo $_SESSION['array']; // GIVES SAME $array FOR BOTH PAGES

答案 3 :(得分:3)

您可以将数组存储在会话或请求中,然后检索它。

如果是不同的请求,您必须在会话中执行此操作。

$_SESSION['myarray'] = $array_you_want_to_store;

然后。

$array_you_want_to_retrieve = $_SESSION['myaarray'];