Strings printf
(PHP 4, PHP 5, PHP 7, PHP 8)
printf — 형식이 지정된 문자열 출력
설명
printf(string $format
, mixed ...$values
): int
format
에 따라 출력을 생성합니다.
매개변수
format
- 형식 문자열은 결과 및 변환 사양에 직접 복사되는 일반 문자(
%
제외)와 같은 0개 이상의 지시문으로 구성되며, 각각은 자체 매개변수를 가져옵니다.변환 사양은
%[argnum$][flags][width][.precision]specifier
프로토타입을 따릅니다.Argnum
변환에서 처리할 숫자 인수를 지정하기 위해 달러 기호
$
가 뒤따르는 정수입니다.Flags
Flag 설명 -
주어진 필드 너비 내에서 왼쪽 정렬. 오른쪽 맞춤이 기본값입니다. +
플러스 기호로 양수 접두사 +
; 기본적으로 음수에만 음수 기호가 접두사로 붙습니다.결과를 공백으로 채웁니다. 이것이 기본값입니다. 0
0이 있는 숫자만 왼쪽으로 채웁니다. s
지정자를 사용하면 0으로 오른쪽 채울 수도 있습니다.'
(char)결과를 문자(char)로 채웁니다. Width
이 변환의 결과로 생성되어야 하는 문자 수(최소)를 나타내는 정수입니다.
Precision
기간
.
그 뒤에 의미가 지정자에 따라 달라지는 정수가 옵니다.-
e
,E
,f
및F
지정자의 경우: 소수점 뒤에 인쇄할 자릿수입니다(기본값은 6). -
g
,G
,h
및H
지정자의 경우 인쇄할 최대 유효 자릿수입니다. -
s
지정자의 경우: 문자열에 대한 최대 문자 제한을 설정하는 컷오프 포인트 역할을 합니다.
참고: 정밀도에 대한 명시적 값 없이 기간을 지정하면 0으로 간주됩니다.
참고:
PHP_INT_MAX
보다 큰 위치 지정자를 사용하려고 하면 경고가 생성됩니다.Specifiers
Specifier 설명 %
리터럴 백분율 문자입니다. 인수가 필요하지 않습니다. b
인수는 정수로 처리되고 이진수로 표시됩니다. c
인수는 정수로 처리되고 해당 ASCII가 있는 문자로 표시됩니다. d
인수는 정수로 처리되고 (부호 있는) 십진수로 표시됩니다. e
인수는 과학적 표기법으로 처리됩니다(예: 1.2e+2). E
e
지정자와 비슷하지만 대문자를 사용합니다(예: 1.2E+2).f
인수는 부동 소수점으로 처리되고 부동 소수점 숫자(로케일 인식)로 표시됩니다. F
인수는 부동 소수점으로 처리되고 부동 소수점 숫자(로케일을 인식하지 않음)로 표시됩니다. g
일반 형식. 0이 아닌 경우 P를 정밀도와 같게 하고 정밀도가 생략된 경우 6, 정밀도가 0인 경우 1로 설정합니다. 그런 다음 스타일 E를 사용한 변환의 지수가 X인 경우:
P > X ≥ −4인 경우 변환은 스타일 f 및 정밀도 P − (X + 1)로 수행됩니다. 그렇지 않으면 변환은 스타일 e 및 정밀도 P − 1로 수행됩니다.
G
g
지정자와 비슷하지만E
와f
를 사용합니다.h
g
지정자와 비슷하지만F
를 사용합니다. PHP 8.0.0부터 사용 가능합니다.H
g
지정자와 비슷하지만E
와F
를 사용합니다. PHP 8.0.0부터 사용 가능합니다.o
인수는 정수로 처리되고 8진수로 표시됩니다. s
인수는 문자열로 처리되고 표시됩니다. u
인수는 정수로 처리되고 부호 없는 십진수로 표시됩니다. x
수는 정수로 처리되고 16진수(소문자 포함)로 표시됩니다. X
인수는 정수로 처리되고 16진수(대문자 포함)로 표시됩니다. 경고
c
유형 지정자는 패딩 및 너비를 무시합니다.경고 문자당 1바이트 이상이 필요한 문자 집합과 함께 문자열 및 너비 지정자의 조합을 사용하려고 하면 예기치 않은 결과가 발생할 수 있습니다.
변수는 지정자에 적합한 유형으로 강제 변환됩니다.
Type Handling
Type Specifiers string s
int d
,u
,c
,o
,x
,X
,b
float e
,E
,f
,F
,g
,G
,h
,H
-
values
반환 값
출력된 문자열의 길이를 반환합니다.
Examples
예제 #1 printf(): 다양한 예제
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'
// notice the double %%, this prints a literal '%' character
printf("%%b = '%b'\n", $n); // binary representation
printf("%%c = '%c'\n", $c); // print the ascii character, same as chr() function
printf("%%d = '%d'\n", $n); // standard integer representation
printf("%%e = '%e'\n", $n); // scientific notation
printf("%%u = '%u'\n", $n); // unsigned integer representation of a positive integer
printf("%%u = '%u'\n", $u); // unsigned integer representation of a negative integer
printf("%%f = '%f'\n", $n); // floating point representation
printf("%%o = '%o'\n", $n); // octal representation
printf("%%s = '%s'\n", $n); // string representation
printf("%%x = '%x'\n", $n); // hexadecimal representation (lower-case)
printf("%%X = '%X'\n", $n); // hexadecimal representation (upper-case)
printf("%%+d = '%+d'\n", $n); // sign specifier on a positive integer
printf("%%+d = '%+d'\n", $u); // sign specifier on a negative integer
?>
위의 예는 다음을 출력합니다.
%b = '10100111101010011010101101' %c = 'A' %d = '43951789' %e = '4.39518e+7' %u = '43951789' %u = '4251015507' %f = '43951789.000000' %o = '247523255' %s = '43951789' %x = '29ea6ad' %X = '29EA6AD' %+d = '+43951789' %+d = '-43951789'
예제 #2 printf(): 문자열 지정자
<?php
$s = 'monkey';
$t = 'many monkeys';
printf("[%s]\n", $s); // standard string output
printf("[%10s]\n", $s); // right-justification with spaces
printf("[%-10s]\n", $s); // left-justification with spaces
printf("[%010s]\n", $s); // zero-padding works on strings too
printf("[%'#10s]\n", $s); // use the custom padding character '#'
printf("[%10.9s]\n", $t); // right-justification but with a cutoff of 8 characters
printf("[%-10.9s]\n", $t); // left-justification but with a cutoff of 8 characters
?>
위의 예는 다음을 출력합니다.
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [ many monk] [many monk ]
기타
- print - 문자열 출력
- sprintf() - 형식이 지정된 문자열 반환
- fprintf() - 스트림에 형식이 지정된 문자열 쓰기
- vprintf() - 형식이 지정된 문자열 출력
- vsprintf() - 형식이 지정된 문자열 반환
- vfprintf() - 스트림에 형식이 지정된 문자열 쓰기
- sscanf() - 형식에 따라 문자열의 입력을 구문 분석합니다.
- fscanf() - 형식에 따라 파일에서 입력을 구문 분석
- number_format() - 그룹화된 천 단위로 숫자 서식 지정
- date() - Unix 타임스탬프 형식 지정
- flush() - 시스템 출력 버퍼 플러시