ホームページ > バックエンド開発 > PHPチュートリアル > PHPでのシリアル化と逆シリアル化

PHPでのシリアル化と逆シリアル化

高洛峰
リリース: 2023-03-05 20:28:01
オリジナル
861 人が閲覧しました

複雑なデータ型を文字列に圧縮

serialize() 変数とその値をテキスト形式にエンコード

unserialize() 元の変数を復元

eg:

$stooges = array('Moe','Larry','Curly');
$new = serialize($stooges);
print_r($new);echo "<br />";
print_r(unserialize($new));
ログイン後にコピー

Result: a :3:{ i:0;s:3:"もえ";i:1;s:5:"ラリー";i:2;s:5:"カーリー";}

Array ( [0] => ; もえ [1 ] => Larry [2] => Curly )

これらのシリアル化されたデータを URL に入れてページ間で渡すときは、データに対して urlencode() を呼び出して、URL メタ文字が処理されることを確認する必要があります。


$shopping = array('Poppy seed bagel' => 2,'Plain Bagel' =>1,'Lox' =>4);
echo '<a href="next.php?cart=&#39;.urlencode(serialize($shopping)).&#39;">next</a>';
ログイン後にコピー

margin_quotes_gpc および magic_quotes_runtime 構成項目の設定は、unserialize() に渡されるデータに影響します。

magic_quotes_gpc が有効な場合、URL、POST 変数、および Cookie で渡されるデータは、逆シリアル化の前に、stripslashes() で処理する必要があります。 () ファイルに書き込む前に、stripslashes() を読み取る前に処理する必要があります:

$new_cart = unserialize(stripslashes($cart)); //如果magic_quotes_gpc开启
$new_cart = unserialize($cart);
ログイン後にコピー

オブジェクトを逆シリアル化するとき、PHP の __wakeUp() メソッドが自動的に呼び出されます。これにより、オブジェクトはシリアル化中に保存されなかったさまざまな状態を再確立できるようになります。例: データベース接続など。

PHP でのシリアル化と逆シリアル化に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート