[PHP] PHP에서 JSON 데이터 다루기 file_get_contentes(), json_decode()

2022. 10. 15. 04:58Program/PHP

154_PHP에서 JSON 데이터 다루기 file_get_contentes(), json_decode()

[요약]

  • PHP에서 JSON 데이터를 다루는 방법에 대해 알아보자.
  • JSON 파일을 만들어 file_get_contents() 함수를 사용해 불러온다.

자바스크립트의 변수에 JSON 데이터를 대입하여 학습을 진행해 봤다.

이번에는 JSON 데이터를 파일로 만들어서 PHP의 file_get_contents() 함수를 활용하여 학습을 진행해보자.

file_get_contents()는 파일의 내용을 불러오는 함수이다.

 

우선 JSON 데이터를 파일로 저장해보자.

다음의 코드를 [157-1.json]파일로 저장한다.

[예제: 157-1.json ]

{
  "student": [
    { "name": "yuna", "score": { "math": 4, "english": 5, "science": 6 } },
    { "name": "son", "score": { "math": 7, "english": 8, "science": 9 } }
  ]
}

 

file_get_contents() 함수를 사용하여 앞에서 저장한 [157-1.json] 파일의 데이터를 불러와 보도록 하자.

 

[file_get_contents() 함수 사용 방법]

file_get_contents(파일 경로와 파일명);

앞에서 생성한 [157-1.json] 파일을 예로 든다면 다음과 같다.

file_get_contents('./157-1.json');

file_get_contents() 함수는 파일의 내용을 반환한다.

 

다음은 file_get_contents() 함수를 사용하여 [157-1.json] 파일의 내용을 불러오는 예제이다.

[예제: 157-2_fileGetContents.php ]

<?php
    $data = file_get_contents('./157-1.json');
    if($data !== false) {
      echo "데이터형 : ".gettype($data)."<br>";
      echo $data;
    } else {
      echo "실패";
    }
?>

실행결과

JSON 데이터는 현재 PHP측에서 텍스트(스트링형)일 뿐이다.즉 JSON 데이터의 name 변수, score 변수를 찾아서 활용할 수 없는 단계인 것이다.그래서 스트링형으로 인식되는 JSON 데이터를 배열 데이터로 인식할 수 있게 변경해야 한다.

 

배열로 변경하기 위해서는 json_decode() 함수를 사용한다.

 

[json_decode() 함수 사용 방법]

json_decode(변수, true);

 

다음은 json_decode() 함수를 활용하여 var_dump()로 데이터를 확인하는 예제이다.

[예제: 157-3_jsonDecode.php ]

<?php
    $data = file_get_contents('./157-1.json');

    if($data !== false) {
      $data = json_decode($data, true);
      echo "데이터형 : ".gettype($data)."<br>";
      echo $data['student'][0]['score']['math'];
      echo "<br><pre>";
      var_dump($data);
    } else {
      echo "실패";
    }
?>

실행결과

 

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사