是否有任何方法可以在两页之间传递数组完整?在PHP页面之间传递大数组
我正在构建一个巨大的数组,并且它的构建使用大量的内存。我希望能够保存完整的数组,然后从另一个页面重新访问它?
如果我使用$x = print_r($array,true);
并将其写入文件,那么我怎么能重建它到一个数组中,或者有更好的方法。
是否有任何方法可以在两页之间传递数组完整?在PHP页面之间传递大数组
我正在构建一个巨大的数组,并且它的构建使用大量的内存。我希望能够保存完整的数组,然后从另一个页面重新访问它?
如果我使用$x = print_r($array,true);
并将其写入文件,那么我怎么能重建它到一个数组中,或者有更好的方法。
您可以将其存储在会话(不知道它有多大)..如果你想写入文件..你可以做这样的事情:
$fp = fopen("file.php" , "w");
fwrite($fp , "<? \$array = ".var_export($array,true).";");
fclose($fp);
,然后只包括文件像下一页上的正常文件加载。
'serialize'函数在这种情况下更好:) – Sarfraz 2010-10-16 08:29:05
@Sarfraz ..需要记住目标观众:) – 2010-10-16 08:30:39
您可以轻松地将该数据存储在会话中。像这样
$_SESSION['serialized_data'] = urlencode(serialize($your_data));
,然后再把你的第二页上:
$your_data = unserialize(urldecode($_SESSION[$serialized_data]));
我用这种方法经常。
在页面之间传递大量数据通常不是一个很好的决定,但可能会有例外 - 您想在这里完成什么?
我不会建议使用会话变量。在很多情况下,如果数据似乎在页面之间传递的很大,那就是。在这些情况下,使用数据库获取信息并从每个页面访问数据库可能很有用。
最简单的方法是使用会话变量。
$_SESSION['big_array']=$big_array;
如果它是一个高容量的网站(如阵列将在内存中坐,直到会话过期),但应该罚款,否则这不会是特别理想。
你要确保你已经开始在会议开始前,如果有必要,可以做到用:
session_start();
多大的阵列?数字。你确定你需要整个阵列在下一页? – 2010-10-13 22:49:04