PHP Cookie 儲存陣列資料

有個陣列,希望將陣列儲存至 Cookie 中,這裡提供兩種方法

$name = [
    'k1' => "aaa", 
    'k2' => "bbb", 
    'k3' => "ccc" 
];

在官網的範例中,可用下方的方式達成目的
https://www.php.net/manual/en/function.setcookie.php

setcookie("name[k1]", "aaa");
setcookie("name[k2]", "bbb");
setcookie("name[k3]", "ccc");

print_r($_COOKIE['name']);

output:

Array
(
    [k1] => aaa
    [k2] => bbb
    [k3] => ccc
)

雖然是達到目的了,但事實上是建立了三個Cookie,怎麼看都不優雅,更難想像若是一個複雜的多惟陣列,會產生多少Cookie

再來介紹一個比較優雅的做法,我也比較喜歡,先將陣列序列化成字串存入Cookie

setcookie('name', serialize($name));

需要用到的時候,再將字串反序列化,是不是方便多了呢

$data = unserialize($_COOKIE['name']);
print_r($data);

output:

Array
(
    [k1] => aaa
    [k2] => bbb
    [k3] => ccc
)

如果文章對您很有幫助
請我喝杯咖啡吧

Bitcoin 比特幣錢包:

38ieWXhURt27br9XrDoCeo4eruzKyi8QKs



ann71727

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料