خروجی 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) } } */ ?>
ارسال نظر