ホームページ バックエンド開発 PHPの問題 PHPでjson配列を取得する方法

PHPでjson配列を取得する方法

Apr 25, 2023 am 09:05 AM

インターネットの継続的な発展に伴い、Web アプリケーションはデータ送信に JSON (JavaScript Object Notation) 形式を使用することが増えています。 PHP は JSON データを簡単に処理できるため、多くの Web 開発者にとって PHP が選ばれる言語となっています。

JSON データを取得して配列に変換することは、PHP では非常に一般的なタスクです。この記事では、次の点を含む、PHP を使用して JSON 配列を取得する方法を紹介します。

  1. json_decode() 関数を使用して JSON 文字列を PHP 配列に変換する
  2. 使用他の Web サイトから読み取る PHP CURL ライブラリは JSON データを取得します
  3. サードパーティ ライブラリ (Guzzle など) を使用して JSON データを取得します
  4. JSON データを取得するときにエラーと例外を処理します
  5. json_decode() 関数を使用して JSON 文字をデコードする文字列を PHP 配列に変換する

PHP には、JSON 文字列を PHP 配列に変換する簡単なメソッド、つまり json_decode() 関数が用意されています。この関数は次のように使用されます。

$json_string = '{"name":"John","age":30,"city":"New York"}';
$php_array = json_decode($json_string, true);
print_r($php_array);
ログイン後にコピー

出力:

Array
(
    [name] => John
    [age] => 30
    [city] => New York
)
ログイン後にコピー

上記の例では、最初に JSON 文字列が定義され、次に json_decode() 関数を使用して PHP 配列に変換されます。

json_decode() 関数の 2 番目のパラメーターは、JSON 文字列を連想配列に変換するかどうかを示すブール値であることに注意してください。 false に設定するか未設定の場合、JSON 文字列がオブジェクトに変換されます。ただし、JSON 文字列を配列に変換する方が一般的です。

さらに、JSON 文字列が無効であるか、無効な JSON データが含まれている場合、 json_decode() 関数は NULL を返します。したがって、配列を使用する前に、戻り値が NULL かどうかを確認する必要があります。

  1. PHP CURL ライブラリを使用して他の Web サイトから JSON データを取得する

他の Web サイトから JSON データを取得する場合は、PHP CURL ライブラリを使用できます。カール ライブラリは、HTTP、FTP、SMTP などの複数のプロトコルをサポートするオープン ソース ライブラリです。

次は、curl を使用して JSON データを取得する簡単な例です。

$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "http://example.com/data.json");
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
$json_data = curl_exec($curl_handle);
curl_close($curl_handle);

$php_array = json_decode($json_data, true);
print_r($php_array);
ログイン後にコピー

上記のコードでは、curl セッションは最初にcurl_init() 関数によって作成されます。次に、curl_setopt() 関数を使用してオプションを設定します。これには、Web サイトから JSON データをダウンロードする URL と、ダウンロードしたデータを文字列に保存するオプションが含まれます。

最後に、curl_exec() 関数を使用して、curl セッションを実行し、返された JSON データを $json_data 変数に保存します。次に、json_decode() 関数を使用して、$json_data 文字列を PHP 配列に変換します。

上記の例のcurlセッションは、スクリプトの実行後にcurlを自動的に閉じないことに注意してください。したがって、curl セッションは、curl_close() 関数を使用して明示的に閉じる必要があります。

  1. サードパーティ ライブラリ (Guzzle など) を使用して JSON データを取得する

PHP には、他の Web サイトから JSON データを簡単に取得できるサードパーティ ライブラリが多数あります。 。非常に人気のあるライブラリの 1 つが Guzzle です。

Guzzle は、リクエストの送信と応答の処理を行う HTTP ベースの PHP クライアントです。 Guzzle は、タイムアウト、リダイレクト、Cookie 管理、その他の問題を自動的に処理できます。非同期処理と PSR-7 HTTP メッセージもサポートします。以下は、Guzzle を使用して JSON データを取得する例です。

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('http://example.com/data.json');
$json_data = $response->getBody()->getContents();
$php_array = json_decode($json_data, true);
print_r($php_array);
ログイン後にコピー

上の例では、最初に Guzzle クライアントが作成されます。次に、$client->get() メソッドを使用して GET リクエストを送信し、その応答を $response 変数に保存します。

$response->getBody()->getContents() メソッドを使用して、応答オブジェクトから応答の本文コンテンツを取得し、それを $json_data 変数に保存します。最後に、json_decode() 関数を使用して、$json_data 文字列を PHP 配列に変換します。

  1. JSON データ取得時のエラーと例外の処理

他の Web サイトから JSON データを取得したり、JSON 文字列から PHP 配列に変換したりするときに、エラーや異常が発生することがあります。したがって、適切なエラー処理および例外処理メカニズムをコードに追加する必要があります。

たとえば、次のコード例は、try-catch ブロックを使用して JSON デコード エラーをキャッチする方法を示しています。

$json_string = '{"name":"John","age":30,"city":"New York","}';
try {
    $php_array = json_decode($json_string, true, 512, JSON_THROW_ON_ERROR);
    print_r($php_array);
} catch (JsonException $e) {
    echo 'JSON解码错误:', $e->getMessage();
}
ログイン後にコピー

上記のコードでは、JSON_THROW_ON_ERROR オプションと try-catch ブロックは次のとおりです。 JSON エラー例外をキャッチするために使用されます。 JSON 文字列が無効な場合は、JsonException がスローされます。

さらに、curl 操作と Guzzle リクエストを関数にカプセル化し、エラーと例外の処理を含めることができます。これにより、コードの管理と再利用が容易になります。

概要

JSON 配列の取得は、最新の Web 開発の重要な部分です。 PHP の json_decode() 関数は、JSON 文字列を PHP 配列に簡単に変換でき、curl や Guzzle などのライブラリは他の Web サイトから JSON データを取得できます。これらのメソッドはシンプルで使いやすいですが、JSON データを取得する際のエラーと例外の処理には特別な注意を払う必要があります。

以上がPHPでjson配列を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 8 JIT(Just-in-Time)コンピレーション:パフォーマンスの向上方法。 PHP 8 JIT(Just-in-Time)コンピレーション:パフォーマンスの向上方法。 Mar 25, 2025 am 10:37 AM

PHP 8のJITコンピレーションは、頻繁に実行されるコードをマシンコードにコンパイルし、重い計算でアプリケーションに利益をもたらし、実行時間を短縮することにより、パフォーマンスを向上させます。

PHP暗号化:対称と非対称暗号化。 PHP暗号化:対称と非対称暗号化。 Mar 25, 2025 pm 03:12 PM

この記事では、PHPの対称的および非対称暗号化について説明し、適合性、パフォーマンス、セキュリティの違いを比較しています。対称暗号化はより速く、バルクデータに適していますが、非対称は安全なキー交換に使用されます。

PHP認証&承認:安全な実装。 PHP認証&承認:安全な実装。 Mar 25, 2025 pm 03:06 PM

この記事では、不正アクセスを防ぎ、ベストプラクティスの詳細、セキュリティ強化ツールの推奨を防ぐために、PHPで堅牢な認証と承認の実装について説明します。

PHPを使用してデータベースからデータを取得するにはどうすればよいですか? PHPを使用してデータベースからデータを取得するにはどうすればよいですか? Mar 20, 2025 pm 04:57 PM

記事では、PHPを使用してデータベースからデータを取得し、手順、セキュリティ対策、最適化手法、およびソリューションを使用した一般的なエラーをカバーしています。

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。 OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。 Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

mysqli_query()とmysqli_fetch_assoc()の目的は何ですか? mysqli_query()とmysqli_fetch_assoc()の目的は何ですか? Mar 20, 2025 pm 04:55 PM

この記事では、mysqlデータベースインタラクションのphpでmysqli_query()およびmysqli_fetch_assoc()関数について説明します。それは彼らの役割、違いを説明し、それらの使用の実用的な例を提供します。主な議論は、USINの利点に焦点を当てています

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。 PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。 Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP CSRF保護:CSRF攻撃を防ぐ方法。 PHP CSRF保護:CSRF攻撃を防ぐ方法。 Mar 25, 2025 pm 03:05 PM

この記事では、CSRFトークン、同じサイトCookie、適切なセッション管理など、PHPでのCSRF攻撃を防ぐための戦略について説明します。

See all articles