検索
ホームページバックエンド開発PHPチュートリアルPHP JSONデータ処理サンプルプログラムの使い方_PHPチュートリアル

PHP JSONデータ処理サンプルプログラムの使い方_PHPチュートリアル

Jul 13, 2016 pm 04:57 PM
jsonphp使用存在する情報処理使用法使用プログラム

php で JSON データを処理する最も一般的な方法は、処理に json_encode() 関数と json_decode() 関数を直接使用することです。これら 2 つの JSON 処理関数を、アプリケーションでの JSON のさまざまな使用方法について詳しく生徒に紹介したいと思います。それは助けになるでしょう 全員が助けます。

json_encode() 、PHP データ -> JSON

json_encode にはパラメーターが 1 つだけあり、パラメーターにはリソースタイプを除く任意のデータ型を指定できます。ただし、通常は次の例のように配列を渡します

結果はjson文字列です
コードは次のとおりです コードをコピー

$arr = 配列(
「名前」=>「マンソン」、
「年齢」 => 23、
「セックス」 => 1
);
$json_str = json_encode($arr); var_dump($json_str);

{"名前":"マンソン"、"年齢":23、"性別":1}


このとき、変換された文字列は通常、処理のためにフロントエンドに出力されます。これは、ajax とのデータ対話や、一部のフロントエンド テンプレートからのデータ出力によく使用されます。 json_encode で注意が必要な問題の 1 つは、中国語のエンコーディングの問題です。PHP ページのエンコーディングが utf-8 以外の場合、json_encode の前に中国語のコンテンツを含む部分を utf-8 エンコーディングに変換する必要があります。フロントエンドに出力すると出力が文字化けします。オンラインには多くの解決策があります。簡単なコード変換の例を次に示します。

コードは次のとおりですコードをコピー$arr = 配列( 「名前」 => 「張三」、 「年齢」 => 23、json_decode には 2 つのパラメータがあります。最初のパラメータはデコードされる json 文字列です。実際、json_decode は json_encode の逆のプロセスです。
「セックス」 => 1
);
$arr['name'] = iconv("gbk","utf-8",$arr['name']);
$json_str = json_encode($arr);



PHPデータ

コードは次のとおりです

コードをコピー

$json_str = '{"名前":"マンソン","年齢":23,"性別":1}';
$arr = json_decode($json_str,true); var_dump($arr);


ここで注意する必要があるのは、json_decode の 2 番目のパラメータが true に渡されることです。これは、false が渡された場合、または 2 番目のパラメータが渡されなかった場合は、デコード後に配列形式が返されることを意味します。たとえば、上記のコードはオブジェクトを返します。形式は
です。

コードは次のとおりです


コードをコピー

オブジェクト(stdClass)#1 (3) { ["名前"]=> string(6) "マンソン" ["セックス"]=> int(1)

オブジェクト形式は配列形式に比べて、対応するデータを取得するのが難しくなります。特に複数レベルのデータ構造の場合は、json_decode の 2 番目のパラメーターに true を渡すことを忘れないでください。

送信されたJSONデータを処理します

POST メソッド (GET メソッドにも注意してください) は、次のような JSON データを PHP に送信します。

["年齢"]=> int(23) }
コードは次のとおりですコードをコピー
{"a":1,"b":2}

PHP でこのデータを取得します:

コードは次のとおりですコードをコピー
$s=$_POST['data'] ;//または $_GET['data']

その後、この文字列は取り出された後にエスケープされます:

コードは次のとおりですコードをコピー
{"a":1,"b":2}

直接電話する場合:

コードは次のとおりですコードをコピー
$obj = json_decode($s);

print_r($obj); エコー $obj->a;


は間違っているため、エラーが報告されます。

$s が直接定義されている場合:

コードは次のとおりですコードをコピー$s='{"a":1,"b":2}';問題ありません

そのため、PHP で JSON を処理する場合はエスケープが必要です:

コードは次のとおりですコードをコピー$s=ストリップスラッシュ($_POST['データ']) ;この方法でjsonをデコードするだけです。

PHP インターフェイスのコンテンツを取得する

インターフェース ファイルのページが /api.php?action=open_getBlogList&only_recommend=1&limit=5 であると仮定すると、次のステートメントを使用してこのインターフェース ファイルのコンテンツを取得できます。


コードは次のとおりです

コードをコピー $content = ""; while (!feof($handle)) { $content .= fread($handle, 10000);
$handle = fopen("/api.php?action=open_getBlogList&only_recommend=1&limit=5","rb");
}
fclose($handle);


このようにして、コンテンツは JSON API コンテンツを保存します。

PHP は JSON を解析して表示します
元のコンテンツは直接呼び出すことができないため、呼び出して Web ページに表示するには、PHP によってさらに処理する必要があります。 PHP 5.2 以降のバージョンでは、 json_decode() 関数を使用して JSON データを解析し、PHP が呼び出せるデータ形式に変換します。例:

コードは次のとおりです コードをコピー
$content = json_decode($content);

解析後、PHP の配列データと同じ方法で JSON 内のデータを呼び出すことができます。この呼び出しメソッドは、特定の JSON データ形式に従って作成する必要があります。以下のデモを参照してください。 json_decode 関数の使用方法については、PHP マニュアルを参照してください。ここでは詳しく説明しません: http://php.net/manual/en/function.json-decode.php

実用的なAPI


注意深い友人は、Stalker m ブログのサイドバーの下部に、Qiongtai Blog のいくつかの記事を推奨する「フレンドリーな記事の推奨」モジュールがあることに気づくでしょう。

友達記事の推奨は、Qiongtai Blog が開始したブログ間のコミュニケーション方法であり、従来の友達リンクよりも効果的であると同時に、補完的なブログコンテンツを実現します。 Qiongtai Blog のブログ プログラムは彼自身が作成したものであるため、最新のおすすめ記事を取得するための JSON API インターフェイスを提供しています。

このJSONインターフェースをPHPで取得し、ブログのサイドバーに出力してみます。

最初のステップは、API呼び出しメソッドを確認することです


ドキュメントによると、/api.php?action=open_getBlogList&only_recommend=1&limit=5 のようなパラメータを使用しました。これは、彼が推奨する 5 つの記事を呼び出すことを意味します。

2番目のステップはAPI構造データを取得することです
上で述べたように、具体的なコードは次のとおりです。

コードは次のとおりですコードをコピー$handle = fopen("/api.php?action=open_getBlogList&only_recommend=1&limit=5","rb");
$content = "";
while (!feof($handle)) {
$content .= fread($handle, 10000);
}

fclose($handle); まずデータ ファイルを開き、すべての内容を content 変数に保存します。API データが 10000 文字を超えないことが確認できるため、fread 関数の 2 番目のパラメーターとして 10000 を使用します。このようにして、API から返された JSON データは content 変数に格納されます。

3番目のステップ、コンテンツを解析して出力します

次のコードを使用してデータを解析し、出力を呼び出します

コードは次のとおりですコードをコピー
$content = json_decode($content);

foreach ($content->data as $key) {
echo '

  • '.$key->b_title.'
  • ';
    }
    まず content 変数内の JSON データを処理し、それから PHP で呼び出せるデータに変換します。次に、foreach を使用して 5 つのコンテンツを走査して出力し、必要な HTML 形式に従ってコンテンツを挿入します。 。

    http://www.bkjia.com/PHPjc/631542.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631542.html技術記事 php で最も一般的に使用される JSON データ処理は、 json_encode() 関数と json_decode() 関数を直接使用して処理することです。 次に、これら 2 つの json 処理関数を json の応用について詳しく生徒に紹介します。
    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    PHP対Python:違いを理解しますPHP対Python:違いを理解しますApr 11, 2025 am 12:15 AM

    PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

    PHP:それは死にかけていますか、それとも単に適応していますか?PHP:それは死にかけていますか、それとも単に適応していますか?Apr 11, 2025 am 12:13 AM

    PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

    PHPの未来:適応と革新PHPの未来:適応と革新Apr 11, 2025 am 12:01 AM

    PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

    PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?Apr 10, 2025 am 09:39 AM

    PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

    依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?Apr 10, 2025 am 09:38 AM

    依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

    通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。Apr 10, 2025 am 09:37 AM

    SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

    PHPは、ファイルを安全に処理する方法をどのように処理しますか?PHPは、ファイルを安全に処理する方法をどのように処理しますか?Apr 10, 2025 am 09:37 AM

    PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

    Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Apr 10, 2025 am 09:33 AM

    JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

    See all articles

    ホット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衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    PhpStorm Mac バージョン

    PhpStorm Mac バージョン

    最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境

    AtomエディタMac版ダウンロード

    AtomエディタMac版ダウンロード

    最も人気のあるオープンソースエディター

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール