PHP串行化(序列化)跟反串行化
Jun 13, 2016 am 11:12 AM
PHP串行化(序列化)和反串行化
这个和java的序列话是一样的。只是java要实现Serializable这个空接口。
serialize() 把变量和它们的值编码成文本形式
unserialize() 恢复原先变量
什么情况下需要序列化 当你想把的内存中的对象写入到硬盘 数据库的时候;当你想在网络上传送对象的时候;
当把这些序列化的数据放在URL中在页面之间会传递时,需要对这些数据调用urlencode(),以确保在其中的URL元字符进行处理
也可用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";}}

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Utilisez la fonction PHP unserialize() pour implémenter la désérialisation

Quelles données se trouvent dans le dossier de données ?

Une brève analyse de l'utilisation de sérialiser et de désérialiser en php

Que faire si les données de chargement MySQL sont tronquées ?

Les taux d'échec des projets d'IA dépassent 80 % – une étude cite une mauvaise reconnaissance des problèmes et une concentration sur les dernières tendances technologiques parmi les problèmes majeurs
