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

PHPでフロントエンドのJSON配列を取得する方法

王林
リリース: 2023-05-07 14:41:11
オリジナル
908 人が閲覧しました

サーバーサイド言語として、PHP は通常、フロントエンドと対話するときに JSON 形式を使用してデータを送信します。 JSON (JavaScript Object Notation) は軽量のデータ交換形式であり、そのシンプルさ、理解しやすさ、使いやすさにより、Web 開発で一般的に使用されるデータ送信形式となっています。フロントエンドで JSON を使用する場合、通常は JSON.stringify() メソッドを使用してデータを JSON 形式に変換し、ajax やその他のメソッドを通じてリクエストを送信します。バックエンドはこれらのリクエストを受信して​​処理するために PHP を使用する必要があります。 get、post、ajax などのメソッドが含まれます。この記事では、PHPでフロントのJSON配列を取得する方法を紹介します。

  1. $_POST メソッドを使用してフロントエンド JSON 配列を取得します

通常、フロントエンドが ajax を使用して POST リクエストを送信すると、JSON データはリクエストのデータ部分としてバックエンドに送信されます。 PHP では、このデータは $_POST メソッドを使用して取得できます。たとえば、フロントエンドの Ajax コードは次のとおりです。

$.ajax({
    type: "POST",
    url: "test.php",
    data: JSON.stringify({"name": "John", "age": 25}),
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});
ログイン後にコピー
ログイン後にコピー

バックグラウンドの test.php ファイルで、$_POST メソッドを使用して、フロントエンドによって送信された JSON データを取得できます。 ##

<?php
$data = json_decode(file_get_contents("php://input"), true);
print_r($data);
?>
ログイン後にコピー
ログイン後にコピー
このうち、file_get_contents("php ://input") メソッドは POST リクエストのデータを取得でき、json_decode メソッドはデータを PHP 配列にデコードし、最後に print_r 関数を使用して配列を出力します。コンソールに。

    $_GET メソッドを使用してフロントエンド JSON 配列を取得する
フロントエンドは、POST メソッドに加えて、GET メソッドを使用して送信することもできます。 JSON データ。通常、このメソッドはデータを取得するために使用されます。たとえば、フロントエンドの Ajax コードは次のとおりです。

$.ajax({
    type: "GET",
    url: "test.php",
    data: {"name": "John", "age": 25},
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});
ログイン後にコピー
バックグラウンドの test.php ファイルで、$_GET メソッドを使用して、フロントエンドによって送信された JSON データを取得できます。ただし、GET リクエストのデータはサーバーに直接送信されず、URL の後のクエリ文字列に追加されるため、このデータに対して特定の処理が必要です。たとえば、JSON データが Base64 でエンコードされて URL に追加される場合、元の JSON データを取得する前に、バックグラウンドでクエリ文字列をデコードして解析する必要があります。サンプル コードは次のとおりです。

フロントエンド コード:

$.ajax({
    type: "GET",
    url: "test.php",
    data: {"json": btoa(JSON.stringify({"name": "John", "age": 25}))},
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});
ログイン後にコピー
バックエンド コード:

<?php
$json = json_decode(base64_decode($_GET["json"]), true);
print_r($json);
?>
ログイン後にコピー
この例では、btoa( ) メソッドを作成し、Backstage に渡します。バックグラウンドでは、base64_decode() メソッドを使用してクエリ文字列をデコードし、デコードされた JSON データを json_decode() メソッドを通じて PHP 配列に解析し、最後にコンソールに出力します。

    file_get_contents メソッドを使用してフロントエンド JSON 配列を取得する
$_POST メソッドと $_GET メソッドに加えて、file_get_contents メソッドを使用してフロントエンド JSON 配列を取得することもできます。フロントエンドによって送信される JSON データ。このメソッドは通常、より大きな JSON データを処理するために使用されます。たとえば、フロントエンドの Ajax コードは次のとおりです。

$.ajax({
    type: "POST",
    url: "test.php",
    data: JSON.stringify({"name": "John", "age": 25}),
    contentType: "application/json",
    success: function(data) {
        console.log(data);
    }
});
ログイン後にコピー
ログイン後にコピー
バックグラウンドの test.php ファイルでは、file_get_contents メソッドを使用して、フロントエンドによって送信された JSON データを直接取得できます。 json_decode メソッドを使用して、それを PHP 配列にデコードします。

<?php
$data = json_decode(file_get_contents("php://input"), true);
print_r($data);
?>
ログイン後にコピー
ログイン後にコピー
file_get_contents メソッドを使用して GET リクエストのデータを取得することもできますが、使用する場合は、allow_url_fopen 設定項目をオンにする必要があるため、実際の開発での使用は推奨されません。

概要

上記は、PHP でフロントエンド JSON 配列を取得するための一般的なメソッドです。その中でも、$_POST メソッドと file_get_contents メソッドがより一般的です。$_GET を使用した JSON データの取得追加のエンコードが必要であり、デコード操作は比較的面倒です。実際の開発では、データをより適切に処理するために、特定のニーズに応じてフロントエンド JSON 配列を取得する適切な方法を選択できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート