phpは、serialize(シリアル化)メソッドとunserialize(デシリアライズ)メソッドを提供します。
serialize を使用してシリアル化した後、unserialize を使用してデシリアライズして元のデータを取得します。
まず次のプログラム例を見てみましょう:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$arr = 配列( '名前' => 'fdipzone'、 「性別」=>「男性」 ); $str = Serialize($arr) //シリアル化 echo 'str:'.$str."rnrn" をシリアル化します
$content = unserialize($str); // 逆シリアル化 echo "str:rn のシリアル化を解除"; var_dump($content); ?>
|
2 3 4 5 6 7 8 9
| str:a:2:{s:4:"名前";s:8:"fdipzone";s:6:"性別";s:4:"男性";} をシリアル化します
文字列のシリアル化を解除します: 配列(2) { ["名前"]=> 文字列(8) "fdipzone" ["性別"]=> 文字列(4)「男性」}
|
3 4
| $str = 'a:9:{s:4:"時刻";i:1405306402;s:4:"名前";s:6:"新陳";s:5:"url";s:1 : "-";s:4:"単語";s:1:"-";s:5:"rpage";s:29:"http://www.baidu.com/test.html";s : 5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:"ip_city";s:31:"北京、中国都市モバイル";s:4:"ミャオ";s:1:"5";}';
var_dump(unserialize($str)) // bool(false) ?>
シリアル化された文字列を確認し、問題が 2 か所にあることを確認します: s:5:"URL" この問題の原因は、データをシリアル化するときのエンコーディングがデシリアル化するときのエンコーディングと矛盾していることです。たとえば、データベースが latin1 であり、UTF-8 の文字長が異なることが原因です。
1
前の記事:PHP広告ロードクラスの使用例、PHPロード使用例_PHPチュートリアル
次の記事:PHPページング関数サンプルコード、PHPページングコード実装方法、ページングサンプルコード_PHPチュートリアル
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
URL パラメータから取得した PHP 配列が期待どおりに動作しない
カテゴリ ID を含む URL パラメータがあり、それを次のような配列として扱いたいと考えています: http://example.com?cat[]=3,9,13 PHP では、...
から 2024-04-06 22:09:02
0
1
1428
戻り値の変数の形式は何ですか?
私はphpの初心者です。コードを見つけました: if($x<time()){return[false,'error'];} ロジックや変数は重要ではありませんが、[false...
から 2024-04-06 21:55:20
0
1
778
ループするために MySQL の結果を ID ごとにグループ化する
mysqlにフライトデータを含むテーブルがあります。 codeigniter3Journey_idair_idFlightDurationout_or_inflightdurati...
から 2024-04-06 17:27:56
0
1
406
関連トピック
詳細>
|