シリアル化では、配列などを配列として保存することができます。また、メールの送受信にも使用できます。わかりにくいかもしれません。この記事では、PHP のシリアル化の内容を紹介します。
配列をデータベースに保存すると、通常は何が起こりますか?
次の配列をデータベースに登録してみます。
["student1", "student2", "student3"]
それでは再度取得してみます
'Array("student1", "student2", "student3")'
取得したのは文字列ですが、シリアル化せずにデータベースに登録した後、再度取得すると文字列になります。
foreach ステートメントを使用してこの文字列を取得することはできません。
配列はデータベースに配列として登録する必要があり、シリアル化を使用する必要があります。
シリアル化を使用しましょう
シリアル化するには、serialize 関数を使用する必要があります
さらに、結果は何を行うかによって異なります。シリアル化されたデータ型である必要があります。
シリアル化された配列
ログイン後にコピー
実行結果は
a:3:{i:0;s:8:"student1";i:1;s:8:"student2";i:2;s:8:"student3";}
最初の [a:3] 部分が [type] で終わっていることに注意してください:値]が表示されます。
は、配列の型が a であることを示します。
さらに、その後に表示されるのは、[key; value;]で表される配列データ部分です。
Serialized integer
<?php $test = 50; $disp = serialize($test); echo $disp;
結果は次のようになります。
i:50;
シリアル化された文字列
<?php $test = 'student'; $disp = serialize($test); echo $disp;
結果は
s:7:"student";
となり、文字列の型が s であることを示します。
文字列の場合は数字もありますが、これは文字数を表します。
シリアル化は簡単です。
次に、シリアル化されたデータを送信するか、データベースに保存します。
デシリアライズとアンシリアライズ
シリアル化されたデータを使用するには、そのままでは使用できません。
元の型と構造を復元するには、Unserialize を使用する必要があります。
配列の逆シリアル化
"; echo print_r(unserialize($disp));
わかりやすくするために、シリアル化された $disp は改行を設定して示されています (
)。
さらに、$disp がデシリアライズされて表示されます。
print_r は、配列の内容を表示するために使用されます。
結果は
a:3:{i:0;s:8:"student1";i:1;s:8:"student2";i:2;s:8:"student3";} Array ( [0] => student1 [1] => student2 [2] => student3 )1
最初の行はシリアル化の結果、2行目は逆シリアル化の結果です。
整数の逆シリアル化
<?php $test = 50; $disp = serialize($test); echo $disp; echo "
"; echo unserialize($disp);
結果は
i:50; 50
文字列の逆シリアル化
<?php $test = 'student'; $disp = serialize($test); echo $disp; echo "
"; echo unserialize($disp);
結果は
s:7:"student"; student
シリアル化されたデータの回復は簡単です。
以上がphpシリアル化の使い方まとめ(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。