tatasusunan PHP ke siri
Dalam PHP, tatasusunan ialah jenis data yang sangat biasa digunakan. Tatasusunan boleh digunakan untuk menyimpan satu siri nilai, dan ia juga boleh digunakan untuk memproses nilai ini. Walau bagaimanapun, dalam beberapa kes, tatasusunan PHP perlu ditukar kepada format bersiri. Artikel ini akan menerangkan cara menukar tatasusunan PHP kepada format bersiri.
Siri merujuk kepada proses menukar struktur data atau keadaan objek kepada format yang boleh disimpan atau dihantar. Data bersiri boleh disimpan dalam fail atau dihantar melalui rangkaian. Data bersiri boleh dipulihkan kepada struktur data asal atau keadaan objek. Format siri PHP biasanya merupakan rentetan yang membungkus struktur dan nilai data asal dalam format tertentu.
Dalam PHP, anda boleh menggunakan fungsi serialize() untuk menukar tatasusunan kepada format bersiri. Sintaks fungsi ini adalah seperti berikut:
string serialize(mixed $value)
Fungsi ini menerima satu parameter, iaitu nilai yang perlu disirikan. Parameter boleh terdiri daripada sebarang jenis, termasuk jenis primitif dan jenis tatasusunan. Fungsi ini mengembalikan rentetan, nilai bersiri. Perlu diingatkan bahawa semua pasangan nilai kunci dalam tatasusunan akan disertakan dalam rentetan bersiri.
Contohnya:
$arr = array('name' => 'Tom', 'age' => 18); $str = serialize($arr); echo $str; //输出:a:2:{s:4:"name";s:3:"Tom";s:3:"age";i:18;}
Dalam kod di atas, tatasusunan yang mengandungi dua pasangan nilai kunci ditakrifkan, iaitu nama dan umur. Panggil fungsi bersiri untuk mensiri tatasusunan menjadi rentetan. Format rentetan ini ialah format seperti kamus, di mana setiap nama kunci dikenal pasti mengikut jenis dan awalan panjangnya (contohnya, "s:4" menunjukkan jenis rentetan dengan panjang 4) dan setiap nilai kunci menggunakan yang sepadan Diwakili oleh pengecam i (integer) atau s (rentetan).
Rentetan bersiri boleh dipulihkan kepada format tatasusunan:
$str = 'a:2:{s:4:"name";s:3:"Tom";s:3:"age";i:18;}'; $arr = unserialize($str); print_r($arr); //输出 array('name' => 'Tom', 'age' => 18)
Tetapi anda perlu memberi perhatian yang penting ialah fungsi penyahserikatan unserialize() mesti menggunakan persekitaran yang sama seperti fungsi serialization serialize(). Jika anda menggunakan persekitaran yang berbeza, anda akan mendapat hasil yang berbeza selepas penyahserikatan. Ini kerana proses penyirian dan penyahserikatan mungkin melibatkan pelaksanaan kod, dan persekitaran yang berbeza mungkin mempunyai hasil pelaksanaan yang berbeza.
Selain itu, nama utama tatasusunan hanya boleh menjadi rentetan atau integer, kerana jenis nilai lain akan ditukar kepada rentetan atau integer semasa bersiri.
Apabila menggunakan siri, anda perlu memberi perhatian khusus kepada isu keselamatan. Memandangkan penyirian membungkus struktur data ke dalam strim binari, rentetan bersiri boleh digunakan untuk melaksanakan operasi berniat jahat, seperti mengubah suai data dalam rentetan bersiri atau menggunakan rentetan bersiri untuk menambah kod hasad. Ini boleh membawa kepada kelemahan pelaksanaan kod dan pendedahan maklumat.
Oleh itu, adalah disyorkan untuk mengelakkan operasi bersiri dan penyahsirian pada data yang tidak diketahui atau tidak dipercayai. Di samping itu, apabila menggunakan pensiririan, anda juga perlu memastikan bahawa persekitaran pensiririan dan penyahsirian adalah konsisten untuk mengelakkan hasil yang diperoleh selepas penyahserikatan tidak konsisten dengan jangkaan.
Artikel ini memperkenalkan kaedah menukar tatasusunan PHP kepada bersiri. Gunakan fungsi serialize() untuk menukar tatasusunan kepada format bersiri dan gunakan fungsi unserialize() untuk memulihkan rentetan bersiri kepada tatasusunan. Rentetan bersiri boleh digunakan untuk penyimpanan berterusan atau penghantaran rangkaian. Walau bagaimanapun, perlu diambil perhatian bahawa apabila menggunakan pensirilan, anda perlu memastikan bahawa persekitaran pensirilan dan penyahsirisian adalah konsisten, dan mengelakkan operasi pensirilan dan penyahsirian pada data yang tidak diketahui atau tidak dipercayai untuk mengelakkan risiko keselamatan.
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan PHP kepada format bersiri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!