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

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

WBOY
WBOYオリジナル
2016-07-13 16:57:07739ブラウズ

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 までご連絡ください。