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

PHP vfprintf() 함수 완벽 가이드 – 문법, 형식 지정자, 예제

vfprintf() 함수란?

PHP의 vfprintf() 함수는 형식화된 문자열을 지정된 출력 스트림(stream)에 쓰는 함수로, 출력에 성공하면 출력된 문자열의 길이를 반환합니다. fprintf() 함수와 기능이 비슷하지만, vfprintf()는 삽입할 값들을 개별 인수가 아닌 배열 한 개로 전달받는다는 점이 다릅니다.

문법(Syntax)

vfprintf(stream, format, arg)

매개변수(Parameters)

  • stream − 형식화된 문자열을 출력할 대상(파일 포인터 등의 스트림)을 지정합니다.

  • 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진수로 표시합니다. (대문자)

  • arg − format 문자열 내 각 % 기호 자리에 순서대로 삽입될 값들을 담은 배열입니다.

반환값(Return)

vfprintf() 함수는 스트림에 출력된 문자열의 길이를 정수(int)로 반환하며, 출력에 실패하면 false를 반환합니다.

사용 예제

다음은 vfprintf() 함수를 사용해 두 개의 값을 부동 소수점 형식으로 파일에 출력하는 예제입니다.

<?php
$str1 = 123;
$str2 = 456;

// 쓰기 모드(w)로 파일 열기
$file = fopen("sample.txt", "w");

$length = vfprintf($file, "%f%f", array($str1, $str2));
echo "출력된 문자열 길이: " . $length;

fclose($file);
?>

위 코드를 실행하면 sample.txt 파일에 %f 지정자에 따라 두 값이 실수 형태로 기록됩니다.

123.000000456.000000

이때 출력된 문자열의 전체 길이는 20이므로, 화면에는 "출력된 문자열 길이: 20"이라는 결과가 표시됩니다. 참고로 파일에 데이터를 쓸 때는 읽기 모드("r")가 아닌 쓰기 모드("w") 또는 추가 모드("a")로 파일을 열어야 정상 동작합니다.