file_put_contents 함수

(PHP 5, PHP 7, PHP 8)

file_put_contents — 파일에 데이터 쓰기


설명

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

이 함수는 fopen(), fwrite(), fclose()를 연속적으로 호출하여 파일에 데이터를 쓰는 것과 동일합니다.

filename이 없으면 파일이 생성됩니다. 그렇지 않으면 FILE_APPEND 플래그가 설정되지 않는 한 기존 파일을 덮어씁니다.


매개변수

filename
데이터를 쓸 파일의 경로입니다.
data
쓸 데이터입니다. 문자열, 배열 또는 스트림 리소스가 될 수 있습니다.

데이터가 스트림 리소스인 경우 해당 스트림의 나머지 버퍼가 지정된 파일에 복사됩니다. 이것은 stream_copy_to_stream()을 사용하는 것과 유사합니다.

data 매개변수를 1차원 배열로 지정할 수도 있습니다. 이것은 file_put_contents($filename, implode('', $array))와 동일합니다.

flags
flags 값은 이진 OR(|) 연산자와 결합된 다음 플래그의 조합일 수 있습니다.

사용 가능한 플래그

Flag 설명
FILE_USE_INCLUDE_PATH 포함 디렉토리에서 filename을 검색하십시오. 자세한 내용은 include_path를 참조하십시오.
FILE_APPEND filename이 이미 있는 경우 덮어쓰는 대신 파일에 데이터를 추가합니다.
LOCK_EX 쓰기를 진행하면서 파일에 대한 배타적 잠금을 획득합니다. 즉, fopen() 호출과 fwrite() 호출 사이에 flock() 호출이 발생합니다. 이것은 "x" 모드를 사용한 fopen() 호출과 동일하지 않습니다.
context
stream_context_create()로 생성된 유효한 컨텍스트 리소스.

반환 값

이 함수는 파일에 기록된 바이트 수를 반환하거나 실패 시 false를 반환합니다.

경고 이 함수는 부울 false을 반환할 수 있지만 거짓으로 평가되는 부울이 아닌 값을 반환할 수도 있습니다. 자세한 내용은 부울 섹션을 참조하세요. 이 함수의 반환 값을 테스트하려면 === 연산자를 사용하십시오.


Examples

예제 #1 간단한 사용 예

                  
<?php
$file = 'people.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "John Smith\n";
// Write the contents back to the file
file_put_contents($file, $current);
?>
                  
                

예제 #2 플래그 사용

                  
<?php
$file = 'people.txt';
// The new person to add to the file
$person = "John Smith\n";
// Write the contents to the file,
// using the FILE_APPEND flag to append the content to the end of the file
// and the LOCK_EX flag to prevent anyone else writing to the file at the same time
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>
                  
                

메모

참고: 이 함수는 binary-safe입니다.

팁: fopen 래퍼가 활성화된 경우 URL을 이 함수와 함께 파일 이름으로 사용할 수 있습니다. 파일 이름을 지정하는 방법에 대한 자세한 내용은 fopen()을 참조하십시오. 다양한 래퍼의 기능, 사용법에 대한 참고 사항, 제공할 수 있는 미리 정의된 변수에 대한 정보에 대한 링크는 지원되는 프로토콜 및 래퍼를 참조하세요.


기타