シリアル化は、変数を保存または送信できる文字列に変換するプロセスであり、逆シリアル化は、必要に応じて使用できるように文字列を元の変数に変換することです。これら 2 つのプロセスを組み合わせることで、データの保存と転送が容易になり、プログラムの保守性が向上します。
これら 2 つは、PHP でデータをシリアル化および逆シリアル化するためによく使用される関数です。
リーリー配列値に二重引用符、一重引用符、コロンなどの文字が含まれている場合、逆シリアル化後に問題が発生する可能性があります。この問題を克服するための巧妙なトリックは、base64_encode とbase64_decode を使用することです。
リーリーただし、base64 エンコードでは文字列の長さが長くなります。この問題を解決するには、gzcompress を使用します。
リーリーJSON 形式のシリアル化と逆シリアル化を使用することは良い選択です:
上記の例では、json_encode 出力の長さは、前の例のシリアライズ出力の長さよりも明らかに短くなります。
var_export 関数は変数を文字列として出力します。eval は文字列を PHP コードとして実行し、逆シリアル化して元の変数の内容を取得します。
リーリーwddx_serialize_value 関数は、配列変数をシリアル化し、XML 文字列として出力できます。
リーリーXML タグには多くの文字が含まれているため、この形式のシリアル化には依然として多くのスペースが必要であることがわかります。
上記の関数はすべて、配列変数をシリアル化する場合には正常に実行できますが、オブジェクトに適用すると異なります。たとえば、json_encode シリアル化オブジェクトは失敗します。オブジェクトを逆シリアル化する場合、unserialize と eval の効果は異なります。