我有一个需要重定向到另一个的 php 文件,但我需要将一个数组传递给第二个文件。我怎样才能做到这一点。
我知道这是错误的,但我需要一些逻辑上与此类似的东西。
<?php
$arr = array('this'=>'is', 'some'=>'stuff');
header("someurl.php", vals=>$arr);
?>
header("Location: someurl.php?" . http_build_query($arr));
这不是你做标题的方式。它必须是
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");
并希望它有效。
如果你不想暴露你的 $array,你必须使用 PHP 内置会话支持。
session_start(); // DO CALL ON TOP OF BOTH PAGES
$_SESSION['array'] = $array;
echo $_SESSION['array']; // GIVES SAME $array FOR BOTH PAGES
您可以将数组存储在会话或请求中,然后检索它。
如果是不同的请求,您必须在会话中进行。
$_SESSION['myarray'] = $array_you_want_to_store;
接着。
$array_you_want_to_retrieve = $_SESSION['myaarray'];