خروجی serialize در PHP چیست و چگونه از آن استفاده کنیم ؟

خروجی serialize در PHP – ویژگی serialize در واقع مکانیزمی است که به ما کمک می کند که داده هایمان را به صورت فشرده به همراه جزئیات ذخیره کنیم
و بعد ها مجدد از آن استفاده کنیم .
این ویژگی که انحصاری PHP می باشد به این شکل عمل می کند که :
- i که به معنای index است موقعیت داده ما را نشان می دهد البته در برخی مواقع مقدار i به معنای integer است
- s به معنای سایز داده است مثلا abc داری s:3 می باشد
- نوع داده های را هم به صورت مختصر نشان می دهد که i همان integer ، مقدار d همان float ، مقدار s همان string ، مقدار b همان boolean ، مقدار N همان null ، مقدار a همان array ، مقدار O همان object است .
تابع serialize
خوب برای این که داده را فشرده کنیم با این تابع امکان پذیر است که به شکل انجام پذیر است .
serialize(123);
تابع unserialize
با کمک این تابع می توانیم داده serialize یا فشرده شده را به حالت اول برگردانیم . البته این تابع دارای 2 ورودی است :
- داده serialize شده
- اینکه آیا کلاس ها را هم بازگردانی کند یا خیر
unserialize('i:123;');
استفاده بهتر از serialize و unserialize
<?php
$data = ['abc' , 123456 , 1.5 , true , null , [new DateTime('2022-01-01') , 343]];
$ser = serialize($data);
var_dump($ser);
/*
a:6:{i:0;s:3:"abc";i:1;i:123456;i:2;d:1.5;i:3;b:1;i:4;N;i:5;a:2:{i:0;O:8:"DateTime":3:{s:4:"date";s:26:"2022-01-01 00:00:00.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}i:1;i:343;}}
*/
var_dump(unserialize($ser , ['allowed_classes' => true]));
/*
array(6) {
[0]=>
string(3) "abc"
[1]=>
int(123456)
[2]=>
float(1.5)
[3]=>
bool(true)
[4]=>
NULL
[5]=>
array(2) {
[0]=>
object(DateTime)#2 (3) {
["date"]=>
string(26) "2022-01-01 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
[1]=>
int(343)
}
}
*/
?>
ارسال نظر