Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP file_get_contents() 함수 완벽 정리 – 문법, 매개변수, 실전 예제

file_get_contents() 함수는 파일 전체 내용을 하나의 문자열(string)로 읽어들이는 PHP 내장 함수입니다. 비슷한 역할을 하는 file() 함수가 파일 내용을 배열(array) 형태로 한 줄씩 읽어오는 것과 달리, file_get_contents()는 파일 전체를 통째로 문자열에 담아 반환한다는 점이 큰 차이입니다.

문법(Syntax)

file_get_contents(file_path, flags, context, start_offset, max_length)

매개변수(Parameters)

  • file_path – 읽어올 파일의 경로입니다.

  • flags – 아래 플래그들을 바이너리 OR(|) 연산자로 조합하여 지정할 수 있습니다.

    • FILE_USE_INCLUDE_PATH – include 경로(include_path)에서 파일명을 검색합니다.

    • FILE_TEXT – 유니코드 시맨틱이 활성화된 환경에서 읽어온 데이터의 기본 인코딩을 UTF-8로 지정합니다. 이 플래그는 FILE_BINARY와 함께 사용할 수 없습니다.

    • FILE_BINARY – 파일을 바이너리 모드로 읽습니다. 기본 설정값이며, FILE_TEXT와 함께 사용할 수 없습니다.

  • context – stream_context_create() 함수로 생성한 컨텍스트(context) 리소스입니다.

  • start_offset – 파일 내에서 읽기를 시작할 위치(오프셋)를 지정합니다.

  • max_length – 읽어올 데이터의 최대 길이입니다. 기본값은 파일의 끝(EOF)까지 전부 읽어오는 것입니다.

반환값(Return)

file_get_contents() 함수는 읽어들인 데이터를 문자열로 반환하며, 파일을 읽는 데 실패하면 false를 반환합니다.

예제 1: 텍스트 파일 읽기

다음과 같은 내용을 담고 있는 info.txt 파일이 있다고 가정해 보겠습니다.

미국은 50개 주로 구성된 나라입니다.

이 파일을 file_get_contents() 함수로 읽어와 출력하는 코드입니다.

<?php
    $info = file_get_contents('info.txt', FALSE, NULL, 0, 50);
    echo $info;
?>

실행 결과(Output)

미국은 50개 주로 구성된 나라입니다.

위 예제에서는 start_offset을 0으로, max_length를 50바이트로 지정했기 때문에 파일 처음부터 최대 50바이트까지만 읽어옵니다.

예제 2: 웹사이트 콘텐츠 읽기

file_get_contents() 함수는 로컬 파일뿐만 아니라 URL을 통해 원격 웹사이트의 HTML 소스도 읽어올 수 있습니다. 아래는 특정 사이트의 메인 페이지 내용을 가져오는 예제입니다.

<?php
    $website = file_get_contents("https://www.qries.com");
    echo $website;
?>

실행 결과(Output)

Sharing Knowledge

활용 시 참고 사항

  • URL을 통해 외부 리소스를 읽어오려면 php.ini 설정에서 allow_url_fopen 옵션이 활성화되어 있어야 합니다.

  • 파일이 존재하지 않거나 권한이 없으면 false를 반환하므로, 실무에서는 반환값을 반드시 검사하여 에러 처리를 해주는 것이 좋습니다.

  • 대용량 파일을 다룰 때는 파일 전체를 메모리에 올리는 이 함수 대신 fgets(), fread() 등으로 부분적으로 읽는 방식을 고려하는 것이 효율적입니다.