본문 바로가기
IT_Developers/PHP

PHP - file_get_contents() 객체 / 파싱

by 고코더 2018. 1. 10.


file_get_contents 파일 읽어오기 


file_get_contents를 활용 하는 방법에 대해 설명하겠습니다.
각종 JSON 파싱이나 XML 파싱으로 데이터를 다루는 일이 많아져서
빈도가 높아진 함수입니다. 

▼ 우선 PHP가 제공하는 레퍼런스는 아래와 같습니다.

▼ 제가 정리한 소스는 아래와 같습니다. 
압축을 풀어 웹서버에서 확인해보세요 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
//헤더 정보를 등록한다.
$opts = array(
    'http' => array(
        'method' => "GET",
        'header' => "Accept-language: utf-8\r\n" .
            "Cookie: foo=bar\r\n"
    )
);
$context = stream_context_create($opts);
 
//파일로도 정보를 읽어올 수 있다.
// $filename = 파일 내지, URL를 통해 해당 데이터를 읽어 올수 있다.
// $use_include_path = 참조(include)된 내용까지 읽어 올지
// $context = 헤더 정보를 입력
// $offset = 몇번째 데이터 부터 읽어올지
// $maxlen = 최대 얼마나 많은 양을 읽어 올지
$file2 = file_get_contents('./file.txt'true$context18);
echo $file2;    //2번째 데이터부터 8개의 데이터니 2~9까지 노출 된다.
 
//URL로 해당 사이트의 정보를 읽어올수 있다.
$file1 = file_get_contents('http://www.google.com/webhp?hl=en');
echo $file1;
 
?>
cs



▼ URL을 가지고 올때 아래처럼 오류가 날 경우는 보안상 해당 방식으로의 접근을 막아놓았기 때문입니다. 
$filename 
- URL을 읽어올시에는 서버 설정에 따라 접근이 불가합니다. PHP라면 php.ini 에 allow_url_fopen가 ON이 되어 있어야 합니다. 


▼Offset으로 불필요한 정보를 건너 뛸수 있고
Maxlen은 웹사이트를 어디까지 읽어올지 결정할 수 있습니다.
이 두변수를 통해서 어디부터 어디까지 파싱할지 결정하시면 됩니다.
$offset = "1" 
- 2번째 데이터부터 가져온다.
$maxlen = "8" 
- 총 8개의 데이터를 가져온다 띄워쓰기 및 개행 문자도 length에 포함

▼ 제가 정리한 해당 소스를 출력 시켜보았습니다.
첫번째는 미국 구글을 URL로 파싱해서 가져왔고
두번째는 file.txt에 1234567890의 내용을 가져왔습니다.





마무리

PHP는 프론트엔드 개발을 위한 함수가 많은 언어 입니다.


댓글