この記事では主に PHP でデータをシリアル化および逆シリアル化する方法を紹介します。興味のある方はぜひ参考にしてください。
php は実際には、serialize と unserialize という 2 つの関数を使用してデータをシリアル化および逆シリアル化します。
serialize配列を順序付けられた文字列にフォーマットします
unserialize 配列を配列に復元します
例:
$user=array('Moe','Larry','Curly'); $user=serialize($stooges); echo '<pre class="brush:php;toolbar:false">'; print_r($user); echo '<br />'; print_r(unserialize($user));
結果:
a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";} Array ( [0] => Moe [1] => Larry [2] => Curly )
配列の値に二重引用符などが含まれている場合に注意してくださいまた、一重引用符、コロン、漢字、文字化け、または書式設定は、逆シリアル化された後に発生する可能性があります。
文字化けの問題を解決するには、base64_encodeとbase64_decodeの2つの関数を使用できます。
例:
$user=array('Moe','Larry','Curly'); $user=base64_encode(serialize($user)); $user=unserialize(base64_decode($user));
この方法では、コードの文字化けの問題は発生しませんが、base64 エンコードにより、保存される文字列の長さが長くなります。
上記から、独自の シリアル化関数と逆シリアル化関数を次のように要約できます:
function my_serialize($obj_array){ return base64_encode(gzcompress(serialize($obj_array))); } //反序列化 function my_unserialize($str){ return unserialize(gzuncompress(base64_decode($str))); }
概要: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。
関連おすすめ:
PHPテンプレートエンジンSmartyの設定ファイルの使い方と例をテンプレート変数で詳しく解説
PHPでmssql jsonデータを読み込む際の中国語文字化けの解決方法について
PHPテンプレートエンジンSmartyの使い方と保持変数の解析例
以上がPHPでデータをシリアル化および逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。