PHP fputs() 함수란?
PHP의 fputs() 함수는 열려 있는 파일에 문자열을 기록하는 함수입니다. 이 함수는 fwrite() 함수의 별칭(alias)으로, 두 함수는 완전히 동일하게 동작합니다.
fputs() 함수는 성공 시 기록한 바이트 수를 반환하며, 실패하면 FALSE를 반환합니다.
또한 fputs() 함수는 파일의 끝(EOF)에 도달하거나 지정된 길이만큼 기록을 완료하면, 둘 중 먼저 해당되는 시점에서 작업을 중단합니다.
문법(Syntax)
fputs(file_pointer, string, length)
매개변수(Parameters)
file_pointer − fopen() 함수로 생성한 파일 포인터입니다. 필수 요소입니다.
string − 파일에 기록할 문자열입니다. 필수 요소입니다.
length − 기록할 최대 바이트 수입니다. 선택 요소입니다.
반환값(Return)
fputs() 함수는 성공적으로 실행되면 기록된 바이트 수를 반환하고, 실패하면 FALSE를 반환합니다.
예제 1: 파일에 텍스트 쓰기
다음 예제는 fopen()으로 파일을 연 뒤 fputs()를 사용해 문자열을 기록합니다.
<?php
$file_pointer = fopen("new.txt", "w");
echo fputs($file_pointer, "This is demo text!");
fclose($file_pointer);
?>
아래는 실행 결과입니다. 기록된 바이트 수가 반환됩니다. ("This is demo text!"는 공백과 느낌표를 포함해 총 18바이트입니다.)
출력
18
예제 2: 지정된 길이만큼만 쓰기
다음 예제는 세 번째 매개변수인 length를 활용해 지정한 바이트 수만큼만 파일에 기록한 후, 해당 파일의 내용을 다시 읽어 화면에 출력합니다.
<?php
$file_pointer = fopen("new.txt", "w");
echo fputs($file_pointer, "This is demo text!", 4);
fclose($file_pointer);
$file_pointer = fopen("new.txt", "r");
echo fread($file_pointer, filesize("new.txt"));
fclose($file_pointer);
?>
4바이트만 기록하도록 지정했으므로 fputs()는 4를 반환하며, 파일에는 문자열의 앞 4바이트("This")만 저장됩니다.
출력
4
참고 사항
fputs()와 fwrite()는 이름만 다를 뿐 동일한 함수이므로 어느 쪽을 사용해도 무방하지만, 최근에는 의미가 더 명확한 fwrite()를 선호하는 경향이 있습니다. 또한 파일 작업이 끝난 후에는 반드시 fclose()로 파일 포인터를 닫아 리소스 누수를 방지하는 것이 좋습니다.