簡體   English   中英

在PHP頁面之間傳遞大型數組

[英]Passing a large array between pages in PHP

有什么辦法可以完整地在兩個頁面之間傳遞數組嗎?

我正在建立一個龐大的數組,它的結構使用了大量的內存。 我希望能夠完整地存儲數組,然后從另一個頁面重新訪問它?

如果我使用$x = print_r($array,true); 並將其寫入文件,然后又如何將其重建為數組,或者有沒有更好的方法呢?

您可以輕松地將數據存儲在會話中。 像這樣

$_SESSION['serialized_data'] = urlencode(serialize($your_data));

然后在第二頁上:

$your_data = unserialize(urldecode($_SESSION[$serialized_data]));

我經常使用這種方法。

您可以將其存儲在會話中(不確定它的大小)..如果要寫入文件..您可以執行以下操作:

$fp = fopen("file.php" , "w");
fwrite($fp , "<? \$array = ".var_export($array,true).";");
fclose($fp);

然后像加載普通文件一樣在下一頁加載該文件。

通常,在頁面之間傳遞大量數據不是一個很好的決定,但是可能會有例外-您要在這里完成什么?

我不建議使用會話變量。 在許多情況下,如果數據似乎很大,可以在頁面之間傳遞。 在這些情況下,使用數據庫獲取信息並從每個頁面訪問數據庫可能會很有用。

最簡單的方法是使用會話變量。

$_SESSION['big_array']=$big_array;

如果它是高容量站點,則這不是特別可取的做法(因為陣列將一直駐留在內存中,直到會話終止),否則應該沒問題。

您需要確保已啟動會話,如果有必要,可以使用以下方法完成該會話:

session_start();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM