首页  >  文章  >  后端开发  >  如何在 Cookie 中存储 PHP 数组:JSON、序列化或数组拆分?

如何在 Cookie 中存储 PHP 数组:JSON、序列化或数组拆分?

Susan Sarandon
Susan Sarandon原创
2024-10-31 15:01:01905浏览

How to Store PHP Arrays in Cookies: JSON, Serialize, or Array Splitting?

在 Cookie 中存储 PHP 数组

PHP 提供了多种在 Cookie 中存储数组的方法。以下是最常用技术的全面概述:

JSON 字符串化:

JSON(JavaScript 对象表示法)是一种轻量级数据交换格式,提供了一种便捷的方式将数组存储在 cookie 中。

存储代码:

<code class="php">setcookie('your_cookie_name', json_encode($info), time() + 3600);</code>

读取代码:

<code class="php">$data = json_decode($_COOKIE['your_cookie_name'], true);</code>

警告:不要使用serialize/unserialize

PHP 提供了serialize() 和unserialize() 函数用于将数组与字符串相互转换。然而,这些函数非常不安全,不应该用于在 cookie 中存储不受信任的数据,因为它们可以被利用来执行任意代码。

替代解决方案:数组拆分

作为 JSON 字符串化的替代方案,您可以将数组元素单独存储为 cookie,每个元素都有自己的密钥。

存储代码:

<code class="php">setcookie('my_array[0]', 'value1', time() + 3600);
setcookie('my_array[1]', 'value2', time() + 3600);
setcookie('my_array[2]', 'value3', time() + 3600);</code>

阅读代码:

<code class="php">$data = $_COOKIE['my_array'];</code>

如果您需要直接作为 cookie 访问单个数组元素,这种方法特别有用。它也是安全的,因为它不涉及任何字符串转换。

以上是如何在 Cookie 中存储 PHP 数组:JSON、序列化或数组拆分?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn