PHP vfprintf() 함수

예제

텍스트를 "test.txt"라는 텍스트 파일에 기록합니다:

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"There are 쥕lion bicycles in %s.",array($number,$str));
?>

위 코드는 다음과 같이 출력됩니다:

40

다음 텍스트는 파일 "test.txt"에 기록됩니다:

Beijing에는 9천만 개의 자전거가 있습니다.

정의와 사용법

vfprintf() 함수는 형식화된 문자열을 지정된 출력 스트림(예: 파일이나 데이터베이스)에 씁니다.

fprintf()와 달리, vfprintf()의 매개변수는 배열에 위치합니다. 배열 요소는 메인 문자열의 % 기호에 삽입됩니다. 이 함수는 단계적으로 실행됩니다. 첫 번째 % 기호에 첫 번째 배열 요소를 삽입하고, 두 번째 % 기호에 두 번째 배열 요소를 삽입하고 이렇게 계속합니다.

주석:% 기호가 많다면 arg 매개변수가 있으면, 대체기호를 사용해야 합니다. 대체기호는 % 기호 뒤에 숫자와 "\$"로 구성됩니다. 예제 2를 참조하세요.

관련 함수:

문법

vfprintf(stream,format,argarray)
매개변수 설명
stream 필수. 문자열을 쓰거나 출력할 위치를 정의합니다.
format

필수. 문자열 및 변수의 포맷화 방법을 정의합니다.

가능한 포맷 값:

  • %% - % 기호를 반환
  • %b - 이진수
  • %c - ASCII 값에 해당하는 문자
  • %d - 부정호를 포함하는 십진수(음수, 0, 양수)
  • %e - 소문자 과학적 표기법 사용(예: 1.2e+2)
  • %E - 대문자 과학적 표기법 사용(예: 1.2E+2)
  • 䇙정호를 포함하지 않는 십진수(0 이상)
  • %f - 로컬 설정의 부동소수점 수
  • %F - 비 로컬 설정의 부동소수점 수
  • %g - 짧은 %e와 %f
  • %G - 짧은 %E와 %f
  • %o - 8진수
  • %s - 문자열
  • %x - 소문자 16진수
  • %X - 대문자 16진수

추가된 포맷 값. %와 문자 사이에 위치해야 합니다(예: %.2f):

  • + (숫자 앞에 + 또는 -를 추가하여 숫자의 부정성을 정의합니다. 기본적으로, 음수만 표시되고, 양수는 표시되지 않습니다.)
  • '' (채우기 문자를 정의,기본적으로 공백입니다. 너비 지정자와 함께 사용해야 합니다. 예를 들어: '%x20s' ("x"를 사용하여 채우기))
  • - (변수 값을 왼쪽 정렬)
  • .[0-9] (변수 값의 최소 너비를 정의)
  • .[0-9] (소수점 자리수 또는 최대 문자열 길이를 정의)

주석:여러 형식 값이 사용되면, 이들은 위의 순서로 배치되어야 합니다.

argarray 필수. 매개변수를 가진 배열, 이 매개변수는 삽입됩니다 format 문자열의 %% 기호 위치

기술 세부 사항

반환 값: 쓰인 문자열의 길이를 반환
PHP 버전: 5+

더 많은 예제

예제 1

텍스트를 파일에 기록합니다:

<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>

아래 텍스트는 파일 "test.txt"에 기록됩니다:

123.000000456.000000

예제 2

置换기호를 사용하여:

<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"With 2 decimals: %1$.2f
\n소수점 없음: %1$u",array($number));
?>

아래 텍스트는 파일 "test.txt"에 기록됩니다:

2개의 소수점: 123.00
소수점 없음: 123

예제 3

printf()를 사용하여 모든 가능한 형식 값을 보여줍니다:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 문자 50은 2
// 주석: 형식 값 "%%"는 百분号을 반환
printf("%%b = %%b <br>", $num1); // 이진수
printf("%%c = %%c <br>", $char); // ASCII 문자
printf("%%d = %%d <br>", $num1); // 부호가 있는 십진수
printf("%%d = %%d <br>", $num2); // 부호가 있는 십진수
printf("%%e = %%e <br>", $num1); // 과학적 표기법(소문자)
printf("%%E = %%E <br>", $num1); // 과학적 표기법(대문자)
printf("%鑾u <br>", $num1); // 부호가 없는 10진수(양수)
printf("%鑾u <br>", $num2); // 부호가 없는 10진수(음수)
printf("%%f = %f <br>", $num1); // 로컬 설정을 고려하는 부동소수점 수
printf("%%F = %F <br>", $num1); // 로컬 설정을 무시하는 부동소수점 수
printf("%%g = %g <br>", $num1); // %e와 %f보다 짧은 것
printf("%%G = %G <br>", $num1); // %E와 %f보다 짧은 것
printf("%%o = %o <br>", $num1); // 8진수
printf("%%s = %s <br>", $num1); // 문자열
printf("%%x = %x <br>", $num1); // 소문자 16진수
printf("%%X = %X <br>", $num1); // 대문자 16진수
printf("%%+d = %+d <br>", $num1); // 부호 설명자(양수)
printf("%%+d = %+d <br>", $num2); // 부호 설명자(음수)
?>

실행 예제