vfprintf 함수의 기본 구문은 다음과 같습니다.
vfprintf(resource $stream, string $format, array $args): int|false
$ stream : fopen () 와 같은 함수를 통해 얻은 파일 리소스 핸들.
$ 형식 : printf series functions의 형식 지정자와 유사한 형식 문자열.
$ args : 형식 지정자에 해당하는 순서로 서식 할 값을 포함하는 배열.
예:
<?php
$file = fopen("gitbox.net/log.txt", "w");
vfprintf($file, "User %s has %d points\n", ["Alice", 120]);
fclose($file);
?>
여기서 줄은 gitbox.net/log.txt 파일에 작성됩니다.
User Alice has 120 points
형식 문자열에서 백분율 부호 % 는 형식 지정자의 시작 기호이며,이 기능은 자리 표시자가 다음과 같은 함수를 알리며 배열의 해당 값으로 대체해야 함을 나타냅니다. 예를 들어:
%s : 문자열
%d : 정수
%F : 부동 소수점 번호
형식 지정자는 폭, 정밀, 정렬 등과 같은 수정자를 포함 할 수도 있습니다.
각 형식 지정자는 % 부터 시작해야합니다.
예를 들어, %s 와 %d는 s 또는 d 로 작성할 수 없습니다.
리터럴 퍼센트 부호 캐릭터 %를 출력 해야하는 경우 이중 퍼센트 부호 %%를 사용해야합니다.
이것은 매우 중요합니다. 그렇지 않으면 단일 %가 형식 지정자의 시작으로 사용되므로 합법적 인 형식 문자없이 오류 또는 예외가 발생합니다.
예를 들어:
<?php
$file = fopen("gitbox.net/output.txt", "w");
vfprintf($file, "Progress: 75%% complete\n", []);
fclose($file);
?>
출력은 다음과 같습니다.
Progress: 75% complete
형식 문자열의 백분율 부호 수는 배열 매개 변수와 일치해야합니다.
배열의 요소 수는 형식 문자열의 형식 지정자 수와 같아야합니다.
형식 문자열에 3 개의 자리 표시자가 있으면 배열에는 3 개의 요소가 있어야합니다.
형식 문자열 오류를 피하십시오.
형식 지정자는 사양을 준수해야합니다. 그렇지 않으면 경고 또는 오류가 발생합니다. 예를 들어, %Q는 유효한 형식 문자가 아닙니다.
다음은 VFPRINTF를 사용하는 방법과 백분율 부호 사용 방법을 보여주는 포괄적 인 예입니다.
<?php
$file = fopen("gitbox.net/report.log", "w");
$name = "Bob";
$score = 88;
$percent = 0.88;
// 올바른 사용법:형식 문자열에는 두 가지 형식 지정자가 있습니다 %s 그리고 %d
vfprintf($file, "Name: %s, Score: %d\n", [$name, $score]);
// 리터럴 퍼센트 부호를 가진 출력 문자열,사용 %%
vfprintf($file, "Completion: %.0f%%\n", [$percent * 100]);
fclose($file);
?>
실행 후 gitbox.net/report.log는 다음을 작성합니다.
Name: Bob, Score: 88
Completion: 88%
오류 상황 | 설명 | 해결책 |
---|---|---|
형식의 % 문자열은 탈출되지 않습니다 | 단일 %는 자리 표시 자로 시작하여 잘못 해석됩니다. | 리터럴 %를 나타 내기 위해 %%를 사용 |
매개 변수 수는 자리 표시 자 형식과 일치하지 않습니다. | 정의되지 않은 행동이나 경고를 일으킬 수 있습니다 | 배열 요소 수가 자리 표시 자 수와 일치하는지 확인 |
유효하지 않은 형식 지정자를 사용하십시오 | 경고 나 오류가 발생합니다 | %s , %d , %f 와 같은 유효한 형식 지정자 사용 |
파일 리소스가 올바르게 열리지 않습니다 | 함수는 파일에 쓸 수 없습니다 | fopen () 가 성공하고 파일이 쓸 수 있음을 확인하십시오. |
PHP의 vfprintf 함수를 사용하는 경우 형식 문자열의 백분율 부호 %는 특별한 의미를 갖습니다.
%s , %d 와 같은 형식 지정자를 식별하는 데 사용됩니다.
리터럴 퍼센트 부호를 출력 해야하는 경우 %%를 사용해야합니다.
형식 지정자 수는 들어오는 배열 매개 변수 수에 해당해야합니다.
유효하지 않은 형식 지정자를 사용하여 런타임 오류를 방지하지 마십시오.
이러한 사양을 마스터하면 형식 문자열의 부적절한 글쓰기로 인한 문제를 효과적으로 피하고 출력 결과가 기대치를 충족시킬 수 있습니다.