ホームページ  >  記事  >  バックエンド開発  >  php json_PHP チュートリアル

php json_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:49:10776ブラウズ

PHP についてはもう馴染みがないかもしれませんが、JSON についてはどう理解していますか? 今日は、PHP で使用される JSON の具体的なエンコーディングについて簡単に紹介します。この記事の内容が、それを必要とする友人に役立つことを願っています。また。

今日、インターネットでは、AJAX はもはや聞きなれない言葉ではありません。 AJAX といえば、RSS をきっかけに登場した XML がすぐに思い浮かぶかもしれません。特に PHP5 や、最も軽量な SimpleXML などの多数の XML パーサーの登場により、XML 解析はおそらく問題ではなくなりました。ただし、AJAX の場合、XML 解析はフロントエンド Javascript のサポートに重点を置いています。 XML を解析したことがある人なら誰でも、ツリーとノードに混乱すると思います。 XML が非常に優れたデータ保存方法であることは否定できませんが、その柔軟性により解析が困難になります。もちろん、ここで言及する難しさは、この記事の主役である JSON に関連したものです。

JSON とは何ですか? 概念については説明しません。平たく言えば、PHP のシリアル化された文字列のようなデータ ストレージ形式です。データの説明です。たとえば、配列をシリアル化して保存すると、簡単に逆シリアル化して適用できます。 JSON にも同じことが当てはまりますが、クライアント側の Javascript とサーバー側の PHP の間に対話型のブリッジが構築される点が異なります。 PHP を使用して JSON 文字列を生成し、この文字列をフロントエンド Javascript に渡すと、それを簡単に JSON に変換して適用できます。簡単に言うと、本当に配列のように見えます。

もっと身近なところでは、PHP で JSON を使用する方法について説明します。 PHP5.2 には JSON のサポートが組み込まれています。もちろん、このバージョンより前のバージョンの場合は、市場に多数の PHP バージョンの実装があるので、必要なものを使用してください。ここでは主に、PHP の JSON 組み込みサポートについて説明します。非常にシンプルな 2 つの関数: json_encode と json_decode (シリアル化とよく似ています)。 1 つはエンコード用、もう 1 つはデコード用です。まずエンコーディングの使用方法を見てみましょう:

'Chen Yixin', 'nick' => '深宇宙', 'contact' => array( 'email' => 'shenkong at qq dot com', 'website' => 'http://www .BkJia.com', ) ); $json_string = json_encode($arr);
配列を JSON 化するのは非常に簡単です。 UTF-8 以外のエンコードでは中国語の文字はエンコードできないため、gb2312 を使用して PHP コードを作成する場合は、iconv または mb を使用してコンテンツを変換する必要があることに注意してください。中国語から UTF-8 に json_encode され、上記の出力結果は次のようになります:

{"名前":"u9648u6bc5u946b","ニックネーム":"u6df1u7a7a","連絡先":{"メール":"シェンコン at qq dot com","ウェブサイト":"

これは連載に非常に似ているとすでに言いましたが、まだ信じられていません。エンコード後、デコードする必要があります。PHP には、対応する関数 json_decode が用意されています。 json_decode を実行すると、次のような操作が行われます。
$arr = 配列(
'名前' => 'チェン・イーシン'、
「ニック」 => 「深宇宙」、
'連絡先' => 'メール' => 'qq ドットコムのシェンコン',
'ウェブサイト' => 'http://www.BkJia.com',
)
);
$json_string = json_encode($arr);
$obj = json_decode($json_string);
print_r($obj);
?>

オブジェクト内のプロパティにアクセスできますか? $obj->name このように、もちろん、簡単に呼び出すために配列に変換することもできます:

$json_string = json_encode($arr);
$obj = json_decode($json_string);
$arr = (配列) $obj;
print_r($arr);

上記では、json_encode の文字列が括弧で囲まれています。eval を実行すると、JavaScript の配列になります (専門用語では配列と呼ぶべきではありませんが、PHP の習慣により便宜的に配列と呼んでいます。ご理解ください)。このようにして、arr を簡単にトラバースしたり、やりたいことを何でも行うことができます。 AJAX についてはまだ触れていませんね。そうですね、考えてみてください。サーバーから返された responseText が XML ではなく JSON 文字列を使用している場合、フロントエンド Javascript がそれを処理するのに非常に便利ではないでしょうか。犬の絆創膏の使い方はこんな感じです。

 其实写到这里,除了数据的存储格式不太一样外,JSON和XML也没什么太大区别哦,不过下面我说的一点。虽然和XML没多大关系,不过,可以说明JSON更大范围的应用,那就是,跨域的数据调用。由于安全性问题,AJAX不支持跨域调用,这样要调用不同域名下的数据,很麻烦哦,虽然有解决方案(stone在他的讲座上提到过了代理啊什么的虽然听不懂但是知道能解决)。我写两个文件,足以展示跨域调用了。
 
 主调文件index.html
 
 
 




調整されたファイル profile.php

$arr = 配列(
'名前' => 'チェン・イーシン'、
「ニック」 => 「深宇宙」、
'連絡先' => 'メール' => 'qq ドットコムのシェンコン',
'ウェブサイト' => 'http://www.BkJia.com',
)
);
$json_string = json_encode($arr);
echo "getProfile('($json_string)')";
?>

明らかに、index.html が profile.php を呼び出すと、JSON 文字列が生成され、パラメータとして getProfile に渡され、ニックネームが div に挿入されます。このようにして、クロスドメイン データ インタラクションが完了します。 PHP が JSON を使用するのは簡単ですか?

おそらく誰もが PHP に馴染みがなくなったと思いますが、JSON についてはどう理解していますか? 今日は、PHP で使用される JSON の具体的なエンコーディングについて簡単に紹介します。この記事の内容が、再び PHP を必要とする友人に役立つことを願っています。 。

今日、インターネットでは、AJAX はもはや聞きなれない言葉ではありません。 AJAX といえば、RSS をきっかけに登場した XML がすぐに思い浮かぶかもしれません。特に PHP5 や、最も軽量な SimpleXML などの多数の XML パーサーの登場により、XML 解析はおそらく問題ではなくなりました。ただし、AJAX の場合、XML 解析はフロントエンド Javascript のサポートに重点を置いています。 XML を解析したことがある人なら誰でも、ツリーとノードに混乱すると思います。 XML が非常に優れたデータ保存方法であることは否定できませんが、その柔軟性により解析が困難になります。もちろん、ここで言及する難しさは、この記事の主役である JSON に関連したものです。

JSON とは何ですか? 概念については説明しません。平たく言えば、PHP のシリアル化された文字列のようなデータ ストレージ形式です。データの説明です。たとえば、配列をシリアル化して保存すると、簡単に逆シリアル化して適用できます。 JSON にも同じことが当てはまりますが、クライアント側の Javascript とサーバー側の PHP の間に対話型のブリッジが構築される点が異なります。 PHP を使用して JSON 文字列を生成し、この文字列をフロントエンド Javascript に渡すと、それを JSON に簡単に変換して適用できます。簡単に言うと、本当に配列のように見えます。

もっと身近なところでは、PHP で JSON を使用する方法について説明します。 PHP5.2 には JSON のサポートが組み込まれています。もちろん、このバージョンより前のバージョンの場合は、市場に多数の PHP バージョンの実装があるので、必要なものを使用してください。ここでは主に、PHP の JSON 組み込みサポートについて説明します。非常にシンプルな 2 つの関数: json_encode と json_decode (シリアル化とよく似ています)。 1 つはエンコード用、もう 1 つはデコード用です。まずはエンコーディングの使用方法を見てみましょう:

'Chen Yixin', 'nick' => '深宇宙', 'contact' => array( 'email' => 'shenkong at qq dot com', 'website' => 'http://www .BkJia.com', ) ); $json_string = json_encode($arr);
配列を JSON 化するのは非常に簡単です。 UTF-8 以外のエンコードでは中国語の文字はエンコードできないため、gb2312 を使用して PHP コードを作成する場合は、iconv または mb を使用してコンテンツを変換する必要があることに注意してください。中国語から UTF-8 に json_encode され、上記の出力結果は次のようになります:

{"名前":"u9648u6bc5u946b","ニックネーム":"u6df1u7a7a","連絡先":{"メール":"シェンコン at qq dot com","ウェブサイト":"

連載とよく似ていると言いましたが、まだ信じられませんね。エンコード後、デコードする必要があります。PHP には、対応する関数 json_decode が用意されています。 json_decode を実行すると、次のような操作が行われます。
$arr = 配列(
'名前' => 'チェン・イーシン'、
「ニック」 => 「深宇宙」、
'連絡先' => 'メール' => 'qq ドットコムのシェンコン',
'ウェブサイト' => 'http://www.BkJia.com',
)
);
$json_string = json_encode($arr);
$obj = json_decode($json_string);
print_r($obj);
?>

オブジェクト内のプロパティにアクセスできますか? $obj->name このように、もちろん、簡単に呼び出すために配列に変換することもできます:

$json_string = json_encode($arr);
$obj = json_decode($json_string);
$arr = (配列) $obj;
print_r($arr);

上記では、json_encode の文字列が括弧で囲まれています。eval を実行すると、JavaScript の配列になります (専門用語では配列と呼ぶべきではありませんが、PHP の習慣により便宜的に配列と呼んでいます。ご理解ください)。このようにして、arr を簡単にトラバースしたり、やりたいことを何でも行うことができます。 AJAX についてはまだ触れていませんね。そうですね、考えてみてください。サーバーから返された responseText が XML ではなく JSON 文字列を使用している場合、フロントエンド Javascript がそれを処理するのに非常に便利ではないでしょうか。犬の絆創膏の使い方はこんな感じです。

実際、これを書いている時点では、データの保存形式が異なることを除けば、JSON と XML の間に大きな違いはありませんが、1 点だけ以下に言及します。これは XML とはほとんど関係がありませんが、JSON のより広範なアプリケーション、つまりクロスドメイン データ呼び出しを示すことができます。セキュリティの問題により、AJAX はクロスドメイン呼び出しをサポートしていません。異なるドメイン名でデータを呼び出すことは非常に面倒ですが、解決策はあります (Stone の講義でプロキシについて言及しましたが、私には理解できません)。解決されます)。 2 つのファイルを作成しましたが、これらはクロスドメイン呼び出しを示すのに十分です。

メインファイルindex.html

<スクリプトタイプ="text/javascript">
関数 getProfile(str) {
var arr = eval('(' + str + ')');
Document.getElementById('nick').innerHTML = arr.nick;
}




調整されたファイル profile.php

$arr = 配列(
'名前' => 'チェン・イーシン'、
「ニック」 => 「深宇宙」、
'連絡先' => 'メール' => 'qq ドットコムのシェンコン',
'ウェブサイト' => 'http://www.BkJia.com',
)
);
$json_string = json_encode($arr);
echo "getProfile('($json_string)')";
?>

明らかに、index.html が profile.php を呼び出すと、JSON 文字列が生成され、パラメータとして getProfile に渡され、ニックネームが div に挿入されます。このようにして、クロスドメイン データ インタラクションが完了します。 PHP が JSON を使用するのは簡単ですか?




chaojie2009さんのコラムより抜粋

http://www.bkjia.com/PHPjc/478372.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/478372.html技術記事 PHP についてはもう馴染みがないかもしれませんが、JSON についてはどう理解していますか? 今日は、PHP で使用される JSON の具体的なエンコーディングについて簡単に紹介します。この記事の内容が役立つことを願っています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。