PHP에서 데이터 얻기 및 읽기

Olorunfemi Akinlua 2023년1월30일
  1. PHP의 GETPOST 메소드
  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의 GETPOST 메소드

데이터를 얻으려면 한 소스에서 다른 소스로 데이터를 전송해야 합니다. 일반적인 사용 사례는 클라이언트에서 서버로 또는 그 반대로입니다. 그렇게 하려면 GETPOST라는 두 가지 인기 있는 방법이 필요합니다.

GET 메서드는 지정된 리소스에서 데이터를 요청하고 POST 메서드는 리소스 생성 또는 업데이트를 위해 서버에 데이터를 보냅니다. 그러나 GET 메소드 내에서는 ASCII 문자만 허용됩니다.

차이점을 제외하고 우리는 다른 응용 프로그램과 연결하는 사실상의 수단인 API(응용 프로그래밍 인터페이스)를 고려해야 합니다. 대부분의 API는 최종 사용자인 우리가 읽거나 사용할 수 있도록 데이터를 JSON 형식으로 제공합니다.

PHP에서 file_get_content()php://input을 사용하여 사용자 입력 얻기 및 읽기

래퍼 php://input을 사용하면 원시 POST 데이터를 읽을 수 있으며 PHP 구성 프로세스(특수 php.ini 지시문) 없이 메모리 집약적인 대안 접근 방식을 제공합니다. 또한 php://inputfile_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() 함수의 문자열 외에도 associative 매개변수인 또 다른 중요한 인수가 있습니다. true 또는 false의 두 가지 값으로 설정할 수 있습니다. 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