PHP vsprintf() 함수

예제

포맷된 문자열을 변수에 기록합니다:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("⌹대의 자전거가 %s에 있습니다.", array($number, $str));
echo $txt;
?>

실행 예제

정의와 사용법

vsprintf() 함수는 포맷된 문자열을 변수에 기록합니다.

sprintf()와 다르게 vsprintf()에서는 매개변수가 배열에 위치합니다. 배열 요소는 메인 문자열의百分号(%)기호 위치에 삽입됩니다. 이 함수는 단계별로 실행됩니다. 첫 번째 % 기호 위치에서 첫 번째 배열 요소를 삽입하고, 두 번째 % 기호 위치에서 두 번째 배열 요소를 삽입하여 이를 계속 합니다.

주석:만약 '%' 기호가 많다면 arg 매개변수가 없으면, 대체 문자를 사용해야 합니다. 대체 문자는 '%' 기호 뒤에 숫자와 "\$"로 구성됩니다. 예제 2를 참조하십시오。

추천:관련 함수:

문법

vsprintf(format,argarray)
매개변수 설명
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 - 소문자 히어로릭 숫자
  • %X - 대문자 히어로릭 숫자

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

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

주석:위의 형식 값 중 여러 가지를 사용할 경우, 그 순서를 바꿀 수 없습니다.

argarray 필수. 매개변수를 가진 배열이며, 이 매개변수들은 format 문자열에서 % 기호 위치.

기술 세부 사항

반환 값: 배열 값을 형식화된 문자열 형태로 반환합니다。
PHP 버전: 4.1.0+

더 많은 예제

예제 1

사용자 정의 값 %f를 사용합니다:

<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>

실행 예제

예제 2

대체 기호 사용:

<?php
$number = 123;
$txt = vsprintf("소수점 2자리:%1$.2f<br>소수점 없음:%1$u",array($number));
echo $txt;
?>

실행 예제

예제 3

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

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

실행 예제

예제 4

문자 지시자 설명 예제:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
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]",array($str2))."<br>";
?>

실행 예제