Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyimpan Tatasusunan PHP dalam Kuki: JSON, Serialize, atau Array Splitting?

Bagaimana untuk Menyimpan Tatasusunan PHP dalam Kuki: JSON, Serialize, atau Array Splitting?

Susan Sarandon
Susan Sarandonasal
2024-10-31 15:01:01905semak imbas

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

Menyimpan Tatasusunan PHP dalam Kuki

PHP menyediakan pelbagai kaedah untuk menyimpan tatasusunan dalam kuki. Berikut ialah gambaran keseluruhan teknik yang paling biasa digunakan:

JSON Stringification:

JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang menyediakan cara yang mudah untuk menyimpan tatasusunan dalam kuki.

Kod Menyimpan:

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

Kod Bacaan:

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

Amaran: Jangan Gunakan serialize/unserialize

PHP menyediakan fungsi serialize() dan unserialize() untuk menukar tatasusunan kepada rentetan dan belakang. Walau bagaimanapun, fungsi ini sangat tidak selamat dan tidak boleh digunakan untuk menyimpan data yang tidak dipercayai dalam kuki, kerana ia boleh dieksploitasi untuk melaksanakan kod sewenang-wenangnya.

Penyelesaian Alternatif: Array Splitting

Sebagai alternatif kepada rentetan JSON, anda boleh menyimpan elemen tatasusunan secara berasingan sebagai kuki, setiap satu dengan kuncinya sendiri.

Kod Menyimpan:

<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>

Kod Membaca:

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

Pendekatan ini amat berguna jika anda perlu mengakses elemen tatasusunan individu secara terus sebagai kuki. Ia juga selamat kerana ia tidak melibatkan sebarang penukaran rentetan.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Tatasusunan PHP dalam Kuki: JSON, Serialize, atau Array Splitting?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn