PHPのシリアル化(シリアル化)と逆シリアル化
これはJavaのシリアル化と同じです。 Java が空のインターフェイス Serializable を実装する必要があるだけです。
serialize() は、変数とその値をテキスト形式
にエンコードします。
unserialize()
元の変数
を復元します
什么情况下需要序列化 当你想把的内存中的对象写入到硬盘 数据库的时候; 当你想在网络上传送对象的时候;
これらのシリアル化されたデータが URL に配置され、ページ間で渡される場合、データ内の URL メタ文字が確実に処理されるように、データに対して urlencode() を呼び出す必要があります。
配列を使用して配列オブジェクトをシリアル化することもできます。
<?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; ?>
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";}}