在PHP中的页面之间传递大型数组

时间:2010-10-13 22:35:02

标签: php arrays

有没有办法在两个页面之间完整地传递数组?

我正在建造一个巨大的阵列,它的建筑使用了大量的记忆。我希望能够完整地存储数组,然后从另一个页面重新访问它?

如果我使用$x = print_r($array,true);并将其写入文件,我怎么能将它重建为数组,或者是否有更好的方法。

4 个答案:

答案 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();