형식이 지정된 문자열을 변수에 씁니다.
<?php$number = 9;$str = "베이징";$txt = vsprintf("%s에 %u백만 대의 자전거가 있습니다.",array($number,$str));echo $txt;?>vsprintf() 함수는 형식화된 문자열을 변수에 씁니다.
sprintf()와 달리 vsprintf()의 인수는 배열에 있습니다. 배열 요소는 백분율 기호(%)로 기본 문자열에 삽입됩니다. 이 기능은 단계별로 실행됩니다. 첫 번째 % 기호에는 첫 번째 배열 요소가 삽입되고, 두 번째 % 기호에는 두 번째 배열 요소가 삽입되는 식입니다.
참고: arg 매개변수보다 % 기호가 더 많은 경우 자리 표시자를 사용해야 합니다. 자리 표시자는 % 기호 뒤에 삽입되며 숫자와 "$"로 구성됩니다. 예제 2를 참조하세요.
팁: 관련 함수: fprintf(), vfprintf(), printf(), sprintf() 및 vprintf()
vsprintf( 형식, 배열 )
매개변수 | 설명하다 |
---|---|
체재 | 필수의. 문자열과 그 안에 있는 변수의 형식을 지정하는 방법을 지정합니다. 가능한 형식 값: %% - 백분율 기호 %를 반환합니다. %b - 이진수 %c - ASCII 값에 해당하는 문자 %d - 부호가 있는 10진수(음수, 0, 양수) %e - 소문자 과학 표기법을 사용합니다(예: 1.2e+2). %E - 대문자 과학 표기법을 사용합니다(예: 1.2E+2). %u - 부호가 없는 10진수(0보다 크거나 같음) %f - 부동 소수점 숫자(로컬 설정) %F - 부동 소수점 숫자(기본 설정이 아님) %g - %e와 %f의 짧은 버전 %G - 더 짧은 %E 및 %f %o - 8진수 %s - 문자열 %x - 16진수(소문자) %X - 16진수(대문자) 추가 형식 값. %와 문자 사이에 위치해야 합니다(예: %.2f). + (숫자 앞에 + 또는 -를 추가하여 숫자의 부호를 정의합니다. 기본적으로 음수만 표시되고 양수는 표시되지 않습니다.) ' (패딩으로 사용할 항목을 지정합니다. 기본값은 공백입니다. 너비 지정자와 함께 사용해야 합니다. 예: %'x20s(패딩으로 "x" 사용)) - (왼쪽 조정 변수 값) [0-9] (변수 값의 최소 너비 지정) .[0-9] (소수점 이하 자릿수 또는 최대 문자열 길이 지정) 참고: 위의 형식 값을 여러 개 사용하는 경우 위의 순서대로 사용해야 하며 중단될 수 없습니다. |
논쟁 | 필수의. % 기호에서 형식 문자열에 삽입될 매개변수가 있는 배열입니다. |
반환 값: | 배열 값을 형식화된 문자열로 반환합니다. |
---|---|
PHP 버전: | 4.1.0+ |
형식 값 %f를 사용합니다.
<?php$num1 = 123;$num2 = 456;$txt = vsprintf("%f%f",array($num1,$num2));echo $txt;?>자리 표시자 사용:
<?php$number = 123;$txt = vsprintf("소수점 2개 포함: %1$.2f<br>소수점 없음: %1$u",array($number));echo $txt;?>sprintf()를 사용하여 가능한 모든 형식 값을 보여줍니다.
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // ASCII 문자 50은 2입니다.// 참고: 형식 값 "%%"는 백분율을 반환합니다. signecho sprintf("%%b = % b",$num1)."<br>"; // 이진수echo sprintf("%%c = %c",$char)."<br>"; // ASCII 문자echo sprintf("%%d = %d",$num1)."<br>"; // 부호 있는 10진수echo sprintf("%% d = %d",$num2)."<br>"; // 부호 있는 십진수echo sprintf("%%e = %e",$num1)."<br>"; // 과학적 표기법 (소문자)echo sprintf("%%E = %E",$num1)."<br>"; // 과학적 표기법 (대문자)echo sprintf("%%u = %u",$num1)."< br>"; // 부호 없는 십진수(양수)echo sprintf("%%u = %u",$num2)."<br>"; // 부호 없는 십진수(음수)echo sprintf("%%f = %f",$num1)."<br>"; // 부동 소수점 숫자(로컬 설정 인식)echo sprintf("%%F = %F",$num1)."< br>"; // 부동 소수점 숫자(로컬 설정을 인식하지 않음)echo sprintf("%%g = %g",$num1)."<br>"; // %e와 %fecho 중 더 짧음 sprintf("%%G = %G",$num1)."<br>"; // %E와 %fecho 중 더 짧음 sprintf("%%o = %o",$num1)."<br>" ; // 8진수echo sprintf("%%s = %s",$num1)."<br>"; // Stringecho sprintf("%%x = %x",$num1)."<br>"; // 16진수(소문자)echo sprintf("%%X = %X",$num1)."<br>"; // 16진수(대문자)echo sprintf("%%+d = %+d", $num1)."<br>"; // 부호 지정자 (양수)echo sprintf("%%+d = %+d",$num2)."<br>"; (부정적)?>문자열 지정자 데모:
<?php$str1 = "안녕하세요";$str2 = "안녕하세요!";echo vsprintf("[%s]",array($str1))."<br>";echo vsprintf("[%8s] ",array($str1))."<br>";echo vsprintf("[%-8s]",array($str1))."<br>";echo vsprintf("[%08s]",array($str1))."<br>"; echo vsprintf("[%'*8s]",array($str1))."<br>";echo vsprintf( "[%8.8s]",배열($str2))."<br>" ?>