PHP串行化(序列化)跟反串行化
Jun 13, 2016 am 11:12 AM
data
index
name
quot
unserialize
PHP串行化(序列化)和反串行化
这个和java的序列话是一样的。只是java要实现Serializable这个空接口。
serialize() 把变量和它们的值编码成文本形式
unserialize() 恢复原先变量
什么情况下需要序列化 当你想把的内存中的对象写入到硬盘 数据库的时候;当你想在网络上传送对象的时候;
ログイン後にコピー
当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理
margic_quotes_gpc和magic_quotes_runtime配置项的设置会影响传递到unserialize()中的数据。
如果magic_quotes_gpc项是启用的,那么在URL、POST变量以及cookies中传递的数据在反序列化之前必须用stripslashes()进行处理:如果magic_quotes_runtime是启用的,那么在向文件中写入序列化的数据之前必须用addslashes()进行处理,而在读取它们之前则必须用stripslashes()进行处理:
tmp.txt的内容为:
也可用array,把一个数组对象系列化。
<?php class Data{ var $index; var $name; function __construct($index,$name){ $this->index = $index; $this->name = $name; } } $data1 = new Data(1, "hello"); $data2 = new Data(2, "world"); $arr = array(); //用ArrayObject也可以。 //$arr = new ArrayObject(); $arr[0] = $data1; $arr[1] = $data2; $str = serialize($arr); $file = fopen("tmp.txt", "w"); fwrite($file, $str); fclose($file); //$file =fopen("tmp.txt", "r"); $data = file_get_contents("tmp.txt"); //反序列化得到原来的数组对象。 $obj = unserialize($data); print_r($obj[0]); echo $obj[0]->name; ?>
ログイン後にコピー
tmp.txt的内容为:
a:2:{i:0;O:4:"Data":2:{s:5:"index";i:1;s:4:"name";s:5:"hello";}i:1;O:4:"Data":2:{s:5:"index";i:2;s:4:"name";s:5:"world";}}
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7297
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29



AI プロジェクトの失敗率は 80% を超える — 研究では、問題認識が不十分であり、主要な問題の中で最新の技術トレンドに重点が置かれていることが挙げられています。
