fprintf() 함수는 PHP에서 형식화된(formatted) 문자열을 스트림(stream), 즉 주로 열려 있는 파일에 기록할 때 사용하는 내장 함수입니다. printf()와 사용 방식이 거의 같지만, 화면에 출력하는 대신 지정된 스트림에 데이터를 쓴다는 점이 다릅니다. 로그 파일 작성이나 특정 서식의 데이터 저장 등에 유용하게 활용됩니다.
문법(Syntax)
fprintf (stream, format, argument1, argument2, ... )
매개변수(Parameters)
stream − 형식화된 문자열이 기록될 대상입니다. 일반적으로 fopen() 함수로 연 파일 리소스를 전달합니다.
format − 출력할 문자열과 그 안에서 변수들을 어떤 서식으로 변환할지 지정합니다.
format에 사용할 수 있는 포맷 지정자는 다음과 같습니다.
%% − 퍼센트 기호(%) 자체를 출력합니다.
%b − 2진수(binary)로 변환하여 출력합니다.
%c − 해당 ASCII 값에 대응하는 문자를 출력합니다.
%d − 부호 있는 10진수(음수, 0, 양수)로 출력합니다.
%e − 소문자 과학적 표기법으로 출력합니다. (예: 1.2e+2)
%E − 대문자 과학적 표기법으로 출력합니다. (예: 1.2E+2)
%u − 부호 없는 10진수(0 이상의 값)로 출력합니다.
%f − 부동 소수점 수로 출력합니다. (로캘(locale) 설정의 영향을 받습니다.)
%F − 부동 소수점 수로 출력합니다. (로캘 설정의 영향을 받지 않습니다.)
%g − %e와 %f 중 더 간결한 표현으로 출력합니다.
%G − %E와 %f 중 더 간결한 표현으로 출력합니다.
%o − 8진수(octal)로 출력합니다.
%s − 문자열(string)로 출력합니다.
%x − 16진수로 출력합니다. (소문자 알파벳 사용)
%X − 16진수로 출력합니다. (대문자 알파벳 사용)
argument1 − format 문자열에서 첫 번째 % 기호 위치에 삽입될 인자입니다.
argument2 − format 문자열에서 두 번째 % 기호 위치에 삽입될 인자입니다.
반환값(Return Value)
fprintf() 함수는 스트림에 실제로 기록된 문자열의 길이(length)를 반환합니다. 이 값을 활용하면 데이터가 정상적으로 기록되었는지 확인할 수 있습니다.
사용 예제(Example)
다음은 fprintf() 함수를 사용해 숫자를 부동 소수점 형식으로 파일에 기록하는 예제입니다.
<?php
$input = 123;
$file = fopen("sample.txt", "w");
fprintf($file, "%f", $input);
fclose($file);
?>
실행 결과(Output)
위 코드 실행 후 sample.txt 파일을 열어보면 다음과 같이 저장된 것을 확인할 수 있습니다.
123.000000
참고: 파일에 데이터를 쓰기 위해서는 fopen() 호출 시 쓰기 모드("w" 또는 "a")로 파일을 열어야 하며, 작업이 끝난 후에는 fclose()로 파일을 닫아주는 것이 좋습니다. 또한 %f 지정자는 기본적으로 소수점 아래 6자리까지 출력하기 때문에 정수 123이 123.000000으로 변환된 것입니다.