有没有办法在两个页面之间完整地传递数组?
我正在建造一个巨大的阵列,它的建筑使用了大量的记忆。我希望能够完整地存储数组,然后从另一个页面重新访问它?
如果我使用$x = print_r($array,true);
并将其写入文件,我怎么能将它重建为数组,或者是否有更好的方法。
答案 0 :(得分:3)
您可以轻松地将该数据存储在会话中。喜欢这个
$_SESSION['serialized_data'] = urlencode(serialize($your_data));
然后在你的第二页上:
$your_data = unserialize(urldecode($_SESSION[$serialized_data]));
我经常使用这种方法。
答案 1 :(得分:2)
你可以将它存储在会话中(不知道它有多大)..如果你想写入文件..你可以这样做:
$fp = fopen("file.php" , "w");
fwrite($fp , "<? \$array = ".var_export($array,true).";");
fclose($fp);
然后只需将该文件包含在下一页加载的普通文件中。
答案 2 :(得分:0)
在页面之间传递大量数据通常不是一个很好的决定,但也有例外 - 你想在这里完成什么?
我不建议使用会话变量。在许多情况下,如果数据似乎很大,以便在页面之间传递,那就是。在这些情况下,使用数据库获取信息并从每个页面访问数据库可能很有用。
答案 3 :(得分:0)
最简单的方法是使用会话变量。
$_SESSION['big_array']=$big_array;
如果它是一个高容量的站点(因为数组将在会话到期之前一直存在于内存中),这不是特别明智的,否则应该没问题。
您需要确保之前已开始会话,如有必要,可以使用以下方式完成:
session_start();