ホームページ  >  記事  >  バックエンド開発  >  PHPでデータをシリアル化および逆シリアル化する方法

PHPでデータをシリアル化および逆シリアル化する方法

墨辰丷
墨辰丷オリジナル
2018-06-06 15:51:351249ブラウズ

この記事では主に PHP でデータをシリアル化および逆シリアル化する方法を紹介します。興味のある方はぜひ参考にしてください。

php は実際には、serialize unserialize という 2 つの関数を使用してデータをシリアル化および逆シリアル化します。
serialize配列を順序付けられた文字列にフォーマットします
unserialize 配列を配列に復元します
例:

$user=array('Moe','Larry','Curly'); 
$user=serialize($stooges); 
echo &#39;<pre class="brush:php;toolbar:false">&#39;; 
print_r($user); 
echo &#39;<br />&#39;; 
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_encodebase64_decodeの2つの関数を使用できます。
例:

$user=array(&#39;Moe&#39;,&#39;Larry&#39;,&#39;Curly&#39;); 
$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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。