PHP でデータを取得して読み取る

Olorunfemi Akinlua 2023年1月30日
  1. PHP の GET メソッドと POST メソッド
  2. PHP の file_get_content()php://input を使用してユーザー入力を取得して読み取る
  3. PHP で file_get_content()json_decode() を使用してリクエストを取得して読み取る
PHP でデータを取得して読み取る

PHP アプリケーションを開発するときに、さまざまなコンテンツに出くわします。時々、ファイルを読み取り、ユーザー、他のソース、およびアプリケーションからコンテンツを取得する必要があります。

PHP およびほとんどのプログラミング言語では、要求を取得してコンテンツを読み取るために使用できるさまざまな手段とプロセスがあります。file_get_content()json_decode() などの組み込み関数を使用すると、コンテンツを取得および JSON ファイルをデコードできます。また、php://input などのラッパーを使用して、リクエスト本文から生データを読み取ることができます。。

この記事では、PHP でリクエストの取得、ユーザー入力、データの読み取りに使用できる関数について説明します。

PHP の GET メソッドと POST メソッド

データを取得するには、あるソースから別のソースにデータを転送する必要があります。一般的なユースケースは、クライアントからサーバーへ、またはその逆です。そのためには、GETPOST という 2つの一般的な方法が必要です。

GET メソッドは指定されたリソースからデータを要求し、POST メソッドはリソースを作成または更新するためにサーバーにデータを送信します。ただし、GET メソッド内で許可されるのは ASCII 文字のみです。

違いは別として、さまざまなアプリケーションと接続するための事実上の手段である API(アプリケーションプログラミングインターフェイス)を検討する必要があります。ほとんどの API は、エンドユーザーである私たちが読み取ったり使用したりできるように、データを JSON 形式で提供します。

PHP の file_get_content()php://input を使用してユーザー入力を取得して読み取る

ラッパーphp://input を使用すると、生の POST データを読み取ることができ、PHP 構成プロセス(特別な php.ini ディレクティブ)を使用せずに、メモリをあまり消費しない代替アプローチを提供します。さらに、php://input を、file_get_content() プロセスのコンテキスト内でコードベース内のどこでも使用できるファイル名として扱うことができます。

この説明に意味を持たせるために、file_get_content() とラッパーphp://input を使用してフォームからユーザーのデータを読み取る簡単なログインプロセスを作成しましょう。HTML フォームは、POST メソッドを使用してユーザーのデータを api.php に送信します。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div>
        <form action="api.php" method="POST">
            <form method="POST">
                <label for="emai">Email address:</label><br>
                <input type="text" id="email" name="email"><br>
                <label for="password">Password:</label><br>
                <input type="text" id="password" name="password">
                <br><br>
                <button type="submit" name="btn_login" value="btn_login"> Login </button>
            </form>
    </div>
</body>

</html>

api.php は関数とラッパーを使用し、var_dump() 関数を使用して情報を表示します。

<?php

$data2 = file_get_contents('php://input');
var_dump($data2);

?>

ユーザー入力のある HTML フォームを以下に示します。

ユーザー入力を収集するためのログインページ

ユーザー入力の api.php 処理を以下に示します。

PHP 入力を使用して処理されたデータ

PHP で file_get_content()json_decode() を使用してリクエストを取得して読み取る

JSON ファイルを読み取るには、組み込み関数 file_get_content() を使用して JSON ファイルを読み取り、関数 json_decode() で取得した文字列をデコードします。

JSON(JavaScript Object Notation)は、データをキーペア形式で文字列として格納するオープンスタンダードのファイル形式です。json_decode() 関数を使用すると、キーペアを処理し、PHP が理解できる連想配列またはオブジェクトを作成できます。

file_get_content() 関数の文字列とは別に、もう 1つの重要な引数である associative パラメーターがあります。true または false の 2つの値に設定できます。true の場合、文字列は連想配列に格納され、false の場合、文字列はオブジェクトとして格納されます。

この JSON ファイルを読んでみましょう:

[
  {
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  },
  {
    "userId": 1,
    "id": 2,
    "title": "qui est esse",
    "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
  },
  {
    "userId": 1,
    "id": 3,
    "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
    "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
  },
  {
    "userId": 1,
    "id": 4,
    "title": "eum et est occaecati",
    "body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
  },
  {
    "userId": 1,
    "id": 5,
    "title": "nesciunt quas odio",
    "body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
  }
]

この PHP コードを使用して、JSON ファイルを連想配列として格納し、配列の最初の配列要素を読み取ることができます。

<?php

$user_json = file_get_contents('user.json');

$users = json_decode($user_json, true);

print_r($users[0]);

foreach ループを使用して、JSON ファイル内のすべてのタイトルを読み取ることもできます。

<?php

$user_json = file_get_contents('user.json');

$users = json_decode($user_json, true);

foreach($users as $user) {
    print_r($user['title']);
    echo "\n";
}

コードスニペットの出力は次のとおりです。

sunt aut facere repellat provident occaecati excepturi optio reprehenderit
qui est esse
ea molestias quasi exercitationem repellat qui ipsa sit aut
eum et est occaecati
nesciunt quas odio

ただし、API から直接 JSON データを読み取りたい場合は、cURL ライブラリjson_encode 関数を使用できます。この GitHub のサンプルコードを確認できます。

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

関連記事 - PHP JSON