PHP シリアル化と JSON 解析の詳細な例_PHP チュートリアル
JSON は、標準 ECMA-262 第 3 版 - 1999 年 12 月のサブセットである JavaScript プログラミング言語に基づいています。 JSON は完全に言語に依存しないテキスト形式を使用しますが、C 言語ファミリー (C、C++、C#、Java、JavaScript、Perl、Python など) に似た規則も使用します。これらの特性により、JSON は理想的なデータ交換言語になります。
JSON は 2 つの構造から構築されます:
名前と値のペアのコレクション。さまざまな言語では、オブジェクト、レコード、構造体、辞書、ハッシュ テーブル、キー付きリスト、または連想配列として理解されます。
値の順序付きリスト。ほとんどの言語では、これは配列として理解されます。
PHP のシリアル化は、変数をシリアル化し、変数の型と構造を含む文字列式を返すことです。
どちらも文字列の形式でデータ構造を具体化するので、違いは何ですか。
JSON から始めて、簡単な例を見てみましょう。
例1:
<ol class="dp-c"> <li class="alt"><span><span class="keyword"><strong><font color="#006699">var</font></strong></span><span> test = {</span><span class="string"><font color="#0000ff">"Name"</font></span><span>:</span><span class="string"><font color="#0000ff">"Peter"</font></span><span>,</span><span class="string"><font color="#0000ff">"Age"</font></span><span>:20}; </span></span></li> <li> <span>document.write(test.Name + </span><span class="string"><font color="#0000ff">": "</font></span><span> + test.Age); </span> </li> </ol>
表示結果:
Peter:20
変数テストでは、{"Name":"Peter","Age":20}が2つの要素を持つオブジェクト(PHPの配列のような感じ) ):
名前はピーター、年齢は20歳です。
もちろん、さらに複雑になる可能性があります。
例 2:
<ol class="dp-xml"> <li class="alt"><span><span>var </span><span class="attribute"><font color="#ff0000">test</font></span><span> = {"User":{"Name":"Peter","Age":20},"Company":"FORD"}; </span></span></li> <li><span>document.write(test.User.Name + ": " + test.Company); </span></li> </ol>
表示結果:
Peter: FORD この例では、User 要素に Name と Age が含まれています。
複数のUserを反映したい場合は、オブジェクトの「{}」とは異なり、配列を使用する必要があります。
JSON 解析例 3:
<ol class="dp-xml"> <li class="alt"><span><span>var </span><span class="attribute"><font color="#ff0000">test</font></span><span> = [ </span></span></li> <li><span> {"User":{"Name":"Peter","Age":20},"Company":"FORD"}, </span></li> <li class="alt"><span> {"User":{"Name":"Li Ming","Age":20},"Company":"Benz"} </span></li> <li><span> ]; </span></li> <li class="alt"><span>document.write(test[1].User.Name + ": " + test[1].Company); </span></li> <li><span>//或者使用:document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]); </span></li> </ol>
JSON 解析表示結果:
Li Ming: Benz
上記の単純な例を通じて、いくつかの複雑なデータを文字列を介して転送することができ、Ajax と連携する方が確かに便利です。 。
PHP のシリアライズ関数の役割を見てみましょう。
JSON 解析の例 4:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">arr</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span> </span></span></li> <li><span> ( </span></li> <li class="alt"> <span> 'Peter'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array </span> </li> <li><span> ( </span></li> <li class="alt"> <span> 'Country'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'USA', </span> </li> <li> <span> 'Age'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>20 </span> </li> <li class="alt"><span> ), </span></li> <li> <span> 'Li Ming'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array </span> </li> <li class="alt"><span> ( </span></li> <li> <span> 'Country'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'CHINA', </span> </li> <li class="alt"> <span> 'Age'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>21 </span> </li> <li><span> ) </span></li> <li class="alt"><span> ); </span></li> <li><span> </span></li> <li class="alt"> <span>$</span><span class="attribute-value"><font color="#0000ff">serialize</font></span><span class="attribute"><font color="#ff0000">serialize_var</font></span><span> = serialize($arr); </span> </li> <li><span>echo $serialize_var; </span></li> </ol>
JSON 解析の表示結果:
<ol class="dp-xml"><li class="alt"><span><span>a:2:{s:5:"Peter";a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}s:7:"Li Ming";a:2:{s:7:"Country";s:5:"CHINA";s:3:"Age";i:21;}} </span></span></li></ol>
この結果は JSON よりも複雑に見えますが、実際にはいくつかのデータ型と構造を説明しています。
a:2:{s:7:"country";s:3:"USA";s:3:"Age";i:20;} を例として挙げます:
a:2 は 2 つあることを示しています要素の配列 (配列)、 s:7:"country";s:3:"USA"; は最初の要素で、 s:7 はこれが 7 文字の文字列であることを示し、その後に i:20 が続きます。整数 (整数) 20 として推測されます。
この例をもう一度見てください。
例 5:
<ol class="dp-c"> <li class="alt"><span><span class="keyword"><strong><font color="#006699">class</font></strong></span><span> test </span></span></li> <li><span>{ </span></li> <li class="alt"> <span> </span><span class="keyword"><strong><font color="#006699">var</font></strong></span><span> </span><span class="vars"><font color="#dd0000">$var</font></span><span> = 0; </span> </li> <li> <span> </span><span class="keyword"><strong><font color="#006699">function</font></strong></span><span> add(){ </span> </li> <li class="alt"> <span> </span><span class="func">echo</span><span> </span><span class="vars"><font color="#dd0000">$var</font></span><span>+10; </span> </li> <li><span> } </span></li> <li class="alt"><span>} </span></li> <li><span> </span></li> <li class="alt"> <span></span><span class="vars"><font color="#dd0000">$unserialize_var</font></span><span> = </span><span class="keyword"><strong><font color="#006699">new</font></strong></span><span> test; </span> </li> <li> <span></span><span class="vars"><font color="#dd0000">$serialize_var</font></span><span> = serialize(</span><span class="vars"><font color="#dd0000">$unserialize_var</font></span><span>); </span> </li> <li class="alt"> <span></span><span class="func">echo</span><span> </span><span class="vars"><font color="#dd0000">$serialize_var</font></span><span>; </span> </li> <li> <span></span><span class="vars"><font color="#dd0000">$unserialize_var</font></span><span> = null; </span> </li> <li class="alt"> <span></span><span class="vars"><font color="#dd0000">$unserialize_var</font></span><span> = unserialize(</span><span class="vars"><font color="#dd0000">$serialize_var</font></span><span>); </span> </li> <li> <span></span><span class="vars"><font color="#dd0000">$unserialize_var</font></span><span>->add(); </span> </li> </ol>
表示結果:
O:4:"test":1:{s:3:"var";i:0;}
10
この例からわかるように、シリアル化はデータの型と構造の両方を保存します。シリアル化を解除した後も、変数は add() メソッドを使用できます。
<ol class="dp-c"> <li class="alt"><span><span class="vars"><font color="#dd0000">$arr</font></span><span> = </span><span class="keyword"><strong><font color="#006699">array</font></strong></span><span> </span></span></li> <li><span> ( </span></li> <li class="alt"> <span> </span><span class="string"><font color="#0000ff">'Name'</font></span><span>=></span><span class="string"><font color="#0000ff">'Peter'</font></span><span>, </span> </li> <li> <span> </span><span class="string"><font color="#0000ff">'Age'</font></span><span>=>20 </span> </li> <li class="alt"><span> ); </span></li> <li><span> </span></li> <li class="alt"> <span></span><span class="vars"><font color="#dd0000">$jsonencode</font></span><span> = json_encode(</span><span class="vars"><font color="#dd0000">$arr</font></span><span>); </span> </li> <li> <span></span><span class="func">echo</span><span> </span><span class="vars"><font color="#dd0000">$jsonencode</font></span><span>; </span> </li> </ol>
表示結果:
json_decodeの使い方を見てみましょう。
<ol class="dp-c"> <li class="alt"><span><span class="vars"><font color="#dd0000">$var</font></span><span> = </span><span class="string"><font color="#0000ff">'{"Name":"Peter","Age":20}'</font></span><span>; </span></span></li> <li> <span></span><span class="vars"><font color="#dd0000">$jsondecode</font></span><span> = json_decode(</span><span class="vars"><font color="#dd0000">$var</font></span><span>); </span> </li> <li class="alt"> <span>print_r(</span><span class="vars"><font color="#dd0000">$jsondecode</font></span><span>); </span> </li> </ol>表示結果:
<ol class="dp-c"><li class="alt"><span><span>stdClass Object ( [Name] => Peter [Age] => 20 ) </span></span></li></ol>これは、確かに {"Name":"Peter","Age":20} が JSON のオブジェクトであることを検証しますが、配列の場合は PHP で変換することもできます。 、json_decode で ASSOC パラメータを True に設定するだけです。
例8:
<ol class="dp-c"> <li class="alt"><span><span class="vars"><font color="#dd0000">$var</font></span><span> = </span><span class="string"><font color="#0000ff">'{"Name":"Peter","Age":20}'</font></span><span>; </span></span></li> <li> <span></span><span class="vars"><font color="#dd0000">$jsondecode</font></span><span> = json_decode(</span><span class="vars"><font color="#dd0000">$var</font></span><span>,true); </span> </li> <li class="alt"> <span>print_r(</span><span class="vars"><font color="#dd0000">$jsondecode</font></span><span>); </span> </li> </ol>表示結果:
<ol class="dp-c"><li class="alt"><span><span>Array ( [Name] => Peter [Age] => 20 ) </span></span></li></ol>なお、JSONはUnicode形式に基づいているため、中国語で操作する場合はUTF-8形式に変換する必要があります。上記の例を通じて、JSON と PHP の Serialize と json_encode については予備的に理解できたと思います。PHP、JavaScript、JSON、Ajax を組み合わせることで、強力なデータ インタラクション関数が完成します。

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版
便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









