我有一个需要重定向到另一个的php文件,但我需要将一个数组传递给第二个文件。我怎么能这样做。
我知道这是错的,但我需要与此逻辑相似的东西。
<?php
$arr = array('this'=>'is', 'some'=>'stuff');
header("someurl.php", vals=>$arr);
?>
答案 0 :(得分:7)
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'];