ホームページ バックエンド開発 PHPチュートリアル PHP のシリアル化 (シリアル化) と逆シリアル化

PHP のシリアル化 (シリアル化) と逆シリアル化

Jun 13, 2016 pm 12:54 PM
data index name quot unserialize

PHPのシリアル化(シリアル化)と逆シリアル化

これはJavaのシリアル化と同じです。 Java が空のインターフェイス Serializable を実装する必要があるだけです。


serialize() は、変数とその値をテキスト形式
にエンコードします。

unserialize() 元の変数
を復元します

什么情况下需要序列化 
当你想把的内存中的对象写入到硬盘 数据库的时候;
当你想在网络上传送对象的时候;
ログイン後にコピー

これらのシリアル化されたデータが URL に配置され、ページ間で渡される場合、データ内の URL メタ文字が確実に処理されるように、データに対して urlencode() を呼び出す必要があります。

margic_quotes_gpc および magic_quotes_runtime 構成項目の設定は、unserialize() に渡されるデータに影響します。
magic_quotes_gpc オプションが有効な場合、URL、POST 変数、および Cookie で渡されたデータは、逆シリアル化の前に、stripslashes() で処理する必要があります: magic_quotes_runtime が有効な場合、シリアル化されたデータは、ファイルに書き込む前にaddslashes() で処理し、読み取る前にstripslashes() で処理する必要があります:


配列を使用して配列オブジェクトをシリアル化することもできます。

<?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 09, 2024 pm 09:24 PM

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

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

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

データフォルダにはどんなデータが入っているのでしょうか? データフォルダにはどんなデータが入っているのでしょうか? 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