PHP でデータを取得して読み取る
-
PHP の
GET
メソッドとPOST
メソッド -
PHP の
file_get_content()
とphp://input
を使用してユーザー入力を取得して読み取る -
PHP で
file_get_content()
とjson_decode()
を使用してリクエストを取得して読み取る
PHP アプリケーションを開発するときに、さまざまなコンテンツに出くわします。時々、ファイルを読み取り、ユーザー、他のソース、およびアプリケーションからコンテンツを取得する必要があります。
PHP およびほとんどのプログラミング言語では、要求を取得してコンテンツを読み取るために使用できるさまざまな手段とプロセスがあります。file_get_content()
、json_decode()
などの組み込み関数を使用すると、コンテンツを取得および JSON ファイルをデコードできます。また、php://input
などのラッパーを使用して、リクエスト本文から生データを読み取ることができます。。
この記事では、PHP でリクエストの取得、ユーザー入力、データの読み取りに使用できる関数について説明します。
PHP の GET
メソッドと POST
メソッド
データを取得するには、あるソースから別のソースにデータを転送する必要があります。一般的なユースケースは、クライアントからサーバーへ、またはその逆です。そのためには、GET
と POST
という 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 で 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 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