file_put_contents 함수

함수 file_put_contents는 데이터를 파일에 씁니다. 첫 번째 매개변수는 파일 경로, 두 번째는 기록할 데이터입니다. 세 번째 선택적 매개변수는 쓰기 모드를 정의합니다(아래 표 참조).

네 번째 선택적 매개변수는 stream_context_create 함수로 생성된 스트림 컨텍스트 리소스입니다. 파일 또는 네트워크 리소스 작업 매개변수를 구성할 수 있게 합니다.

구문

phpfile_put_contents(
  string $filename,
  mixed $data,
  int $flags = 0,
  ?resource $context = null
): int|false

세 번째 매개변수 값

플래그 설명
FILE_USE_INCLUDE_PATH 설정된 경우, 함수는 php.ini 설정 파일의 include_path 매개변수에 지정된 디렉토리에서 파일을 찾습니다.
FILE_APPEND 덮어쓰기 대신 파일 끝에 데이터 추가
LOCK_EX 쓰기 작업 동안 파일에 대한 배타적 잠금 획득

예제

파일에 문자열을 써 봅시다:

php<?php
  $res = file_put_contents('data.txt', 'abcde');
  echo $res;
?>

코드 실행 결과는 기록된 바이트 수를 반환합니다:

php5

예제

파일 끝에 데이터를 추가해 봅시다:

php<?php
  $res = file_put_contents('data.txt', '12345', FILE_APPEND);
  echo $res;
?>

예제

배열을 파일에 쓰기:

php<?php
  $data = ['a', 'b', 'c'];
  $res = file_put_contents('array.txt', implode(',', $data));
  echo $res;
?>

예제

세 번째 매개변수에서 여러 개의 플래그를 | 기호로 구분하여 지정할 수 있습니다. 예를 들어 파일 잠금과 함께 데이터를 추가해 보겠습니다:

php<?php
  $res = file_put_contents(
    'log.txt',
    "text",
    FILE_APPEND | LOCK_EX
  );
  echo $res;
?>

예제

컨텍스트 사용:

php<?php
  $opts = [
    'http' => [
      'method' => "POST",
      'header' => "Content-type: text/plain\r\n"
    ]
  ];
  
  $context = stream_context_create($opts);
  
  $res = file_put_contents(
    'http://example.com/api',
    'data=test',
    false,
    $context
  );
?>

함께 보기