ホームページ  >  記事  >  バックエンド開発  >  PHP の複数のシリアル化/逆シリアル化メソッド_PHP チュートリアル

PHP の複数のシリアル化/逆シリアル化メソッド_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:34:03833ブラウズ

シリアル化は、変数を保存または送信できる文字列に変換するプロセスであり、逆シリアル化は、必要に応じて使用できるように文字列を元の変数に変換することです。これら 2 つのプロセスを組み合わせることで、データの保存と転送が容易になり、プログラムの保守性が向上します。

1. 関数のシリアル化とシリアル化解除

これら 2 つは、PHP でデータをシリアル化および逆シリアル化するためによく使用される関数です。

リーリー

配列値に二重引用符、一重引用符、コロンなどの文字が含まれている場合、逆シリアル化後に問題が発生する可能性があります。この問題を克服するための巧妙なトリックは、base64_encode とbase64_decode を使用することです。

リーリー

ただし、base64 エンコードでは文字列の長さが長くなります。この問題を解決するには、gzcompress を使用します。

リーリー

2. json_encode と json_decode

JSON 形式のシリアル化と逆シリアル化を使用することは良い選択です:

  • json_encode および json_decode 形式の出力を使用すると、シリアル化およびアンシリアル化形式よりもはるかに高速になります。
  • JSON形式で読み込み可能です。
  • JSON 形式はシリアル化よりも小さいデータを返します。
  • JSON 形式はオープンで移植可能です。他の言語でも同様に使用できます。
リーリー

上記の例では、json_encode 出力の長さは、前の例のシリアライズ出力の長さよりも明らかに短くなります。

3. var_export と eval

var_export 関数は変数を文字列として出力します。eval は文字列を PHP コードとして実行し、逆シリアル化して元の変数の内容を取得します。

リーリー

4. wddx_serialize_value と wddx デシリアライズ

wddx_serialize_value 関数は、配列変数をシリアル化し、XML 文字列として出力できます。

リーリー

XML タグには多くの文字が含まれているため、この形式のシリアル化には依然として多くのスペースが必要であることがわかります。

まとめ

上記の関数はすべて、配列変数をシリアル化する場合には正常に実行できますが、オブジェクトに適用すると異なります。たとえば、json_encode シリアル化オブジェクトは失敗します。オブジェクトを逆シリアル化する場合、unserialize と eval の効果は異なります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752352.html技術記事シリアル化は、変数を保存または送信できる文字列に変換するプロセスです。逆シリアル化は、必要に応じて使用できるように、この文字列を元の変数に変換するプロセスです。これら 2 つのプロセスの組み合わせ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。