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

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

خروجی serialize در PHP – ویژگی serialize در واقع مکانیزمی است که به ما کمک می کند که داده هایمان را به صورت فشرده به همراه جزئیات ذخیره کنیم

و بعد ها مجدد از آن استفاده کنیم .


این ویژگی که انحصاری PHP می باشد به این شکل عمل می کند که :

  1. i که به معنای index است موقعیت داده ما را نشان می دهد البته در برخی مواقع مقدار i به معنای integer است
  2. s به معنای سایز داده است مثلا abc داری s:3 می باشد
  3. نوع داده های را هم به صورت مختصر نشان می دهد که i همان integer ، مقدار d همان float ، مقدار s همان string ، مقدار b همان boolean ، مقدار N همان null ، مقدار a همان array ، مقدار O همان object است .

تابع serialize

خوب برای این که داده را فشرده کنیم با این تابع امکان پذیر است که به شکل انجام پذیر است .

serialize(123);


تابع unserialize

با کمک این تابع می توانیم داده serialize یا فشرده شده را به حالت اول برگردانیم . البته این تابع دارای 2 ورودی است :

  1. داده serialize شده
  2. اینکه آیا کلاس ها را هم بازگردانی کند یا خیر
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)
  }
}
*/

?>

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us