ホームページ バックエンド開発 PHPチュートリアル PHP串行化(序列化)跟反串行化

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()进行处理:


也可用array,把一个数组对象系列化。

<?php class Data{		var $index;		var $name;				function __construct($index,$name){			$this->index = $index;			$this-&gt;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]-&gt;name;	?&gt;
ログイン後にコピー

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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Index.html とは何のファイルですか? Index.html とは何のファイルですか? Feb 19, 2024 pm 01:36 PM

Index.html とは何のファイルですか?

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

PHP unserialize() 関数を使用して逆シリアル化を実装する PHP unserialize() 関数を使用して逆シリアル化を実装する Jun 27, 2023 am 08:01 AM

PHP unserialize() 関数を使用して逆シリアル化を実装する

データフォルダにはどんなデータが入っているのでしょうか? データフォルダにはどんなデータが入っているのでしょうか? May 05, 2023 pm 04:30 PM

データフォルダにはどんなデータが入っているのでしょうか?

PHP でのシリアライズとアンシリアライズの使用法の簡単な分析 PHP でのシリアライズとアンシリアライズの使用法の簡単な分析 Mar 24, 2023 pm 02:57 PM

PHP でのシリアライズとアンシリアライズの使用法の簡単な分析

mysqlインデックスとは何ですか mysqlインデックスとは何ですか Oct 08, 2023 am 11:47 AM

mysqlインデックスとは何ですか

mysqlのロードデータが文字化けした場合はどうすればよいですか? mysqlのロードデータが文字化けした場合はどうすればよいですか? Feb 16, 2023 am 10:37 AM

mysqlのロードデータが文字化けした場合はどうすればよいですか?

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

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

See all articles