ホームページ バックエンド開発 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->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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++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 は Web ページのホームページ ファイルを表し、Web サイトのデフォルト ページです。ユーザーが Web サイトにアクセスすると、通常、index.html ページが最初に読み込まれます。 HTML (HypertextMarkupLanguage) は Web ページの作成に使用されるマークアップ言語であり、index.html も HTML ファイルです。これには、Web ページの構造とコンテンツに加えて、書式設定とレイアウトに使用されるタグと要素が含まれます。以下は、index.html コードの例です: &lt

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

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

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

シリアル化は、データ構造またはオブジェクトを保存、送信、または表現のために文字列に変換し、逆に文字列を元のデータ構造またはオブジェクトに解析するプロセスです。 PHP では、serialize() 関数を使用して変数を文字列にシリアル化し、unserialize() 関数を使用して文字列をプリミティブ データ構造またはオブジェクトに逆シリアル化できます。この記事では、PHPunserialize() 関数の使用方法と注意事項を中心に説明します。 1. アンシリアライズ

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

PHP は、Web 開発によく使用される人気のあるプログラミング言語です。その中でも、serialize と unserialize は、PHP オブジェクトを文字列に変換し、逆シリアル化できる 2 つの非常に便利な関数です。

PHP ソース コード実行の問題: インデックス エラーの解決策 PHP ソース コード実行の問題: インデックス エラーの解決策 Mar 09, 2024 pm 09:24 PM

PHP ソース コードの実行の問題: インデックス エラーの解決には特定のコード サンプルが必要です PHP は、動的 Web サイトや Web アプリケーションの開発によく使用される、広く使用されているサーバーサイド スクリプト言語です。ただし、PHP ソース コードを実行するとさまざまな問題が発生することがあります。その中でよくあるのが「インデックス エラー」です。この記事では、インデックス エラーの一般的な原因と解決策をいくつか紹介し、読者がそのような問題にうまく対処できるように具体的なコード例を示します。問題の説明: PHP プログラムの実行時

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

データ フォルダーには、ソフトウェア設定やインストール パッケージなどのシステム データとプログラム データが含まれています。データ フォルダー内の各フォルダーは、データ ファイルがファイル名データを参照しているか拡張子を参照しているかに関係なく、異なる種類のデータ ストレージ フォルダーを表します。 , これらはすべて、システムまたはプログラムによってカスタマイズされたデータ ファイルです。データは、データ ストレージのためのバックアップ ファイルです。通常、meidaplayer、メモ帳、または Word で開くことができます。

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

MySQL のインデックスとはインデックスを意味します。データベース テーブルのクエリを高速化するために使用されるデータ構造です。インデックスは本のカタログにたとえることができます。テーブル内の特定の列の値を格納し、行の位置が対応するため、データベースの効率が向上し、データをすばやく見つけてアクセスできます。インデックスの機能は、クエリの効率を向上させることです。インデックスがないと、データベースは一致するデータを見つけるためにテーブル全体を 1 行ずつスキャンする必要があります。この方法は、大きなテーブルでは非常に時間がかかります。インデックスを使用すると、データベースは次のことができます。必要なデータ行が順番に素早く見つけられるため、クエリ速度が大幅に向上します。

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

mysql ロード データの文字化けの解決策: 1. 文字化けしている SQL ステートメントを見つけます; 2. ステートメントを「LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE Character set utf8;」に変更します。

See all articles