Escriba la cadena formateada en una variable:
<?php$number = 9;$str = "Beijing";$txt = vsprintf("Hay %u millones de bicicletas en %s.",array($number,$str));echo $txt;?>La función vsprintf() escribe la cadena formateada en una variable.
A diferencia de sprintf(), los argumentos en vsprintf() están en una matriz. Los elementos de la matriz se insertarán en la cadena principal con el signo de porcentaje (%). Esta función se ejecuta paso a paso. En el primer signo % se inserta el primer elemento de la matriz, en el segundo signo % se inserta el segundo elemento de la matriz, y así sucesivamente.
Nota: Si hay más símbolos % que parámetros arg, debe utilizar marcadores de posición. El comodín se inserta después del símbolo % y consta de un número y "$". Vea el Ejemplo 2.
Consejo: Funciones relacionadas: fprintf(), vfprintf(), printf(), sprintf() y vprintf()
vsprintf( formato,argarray )
parámetro | describir |
---|---|
formato | Requerido. Especifica una cadena y cómo formatear las variables dentro de ella. Posibles valores de formato: %% - devuelve un signo de porcentaje % %b - número binario %c - el carácter correspondiente al valor ASCII %d - Número decimal con signo (negativo, 0, positivo) %e: utilice notación científica en minúsculas (por ejemplo, 1,2e+2) %E: utilice notación científica en mayúsculas (por ejemplo, 1,2E+2) %u - Número decimal sin signo (mayor o igual a 0) %f - número de punto flotante (configuración local) %F - número de coma flotante (configuración no nativa) %g - la versión más corta de %e y %f %G - %E y %f más cortos %o - número octal %s - cadena %x - Número hexadecimal (letras minúsculas) %X - número hexadecimal (letras mayúsculas) Valores de formato adicionales. Debe colocarse entre % y una letra (p. ej. %.2f): + (Agregue + o - delante de un número para definir el signo del número. De forma predeterminada, solo se marcan los números negativos y los números positivos no) ' (Especifica qué usar como relleno, el valor predeterminado son espacios. Debe usarse con un especificador de ancho. Por ejemplo: %'x20s (use "x" como relleno)) - (valor variable de ajuste izquierdo) [0-9] (especifica el ancho mínimo del valor de la variable) .[0-9] (especifica el número de decimales o la longitud máxima de la cadena) Nota: Si se utilizan varios valores de formato anteriores, deben usarse en el orden anterior y no se pueden alterar. |
Argarray | Requerido. Una matriz con parámetros que se insertarán en la cadena de formato en % símbolos. |
Valor de retorno: | Devuelve un valor de matriz como una cadena formateada. |
---|---|
Versión PHP: | 4.1.0+ |
Utilice el valor de formato %f:
<?php$num1 = 123;$num2 = 456;$txt = vsprintf("%f%f",array($num1,$num2));echo $txt;?>Utilice marcadores de posición:
<?php$número = 123;$txt = vsprintf("Con 2 decimales: %1$.2f<br>Sin decimales: %1$u",array($número));echo $txt;?>Utilice sprintf() para demostrar todos los valores de formato posibles:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // El carácter ASCII 50 es 2// Nota: El valor de formato "%%" devuelve un signo de porcentaje sprintf("%%b = % b",$num1)."<br>"; // Número binarioecho sprintf("%%c = %c",$char)."<br>"; // El carácter ASCIIecho sprintf("%%d = %d",$num1)."<br>"; // Número decimal con signoecho sprintf("%% d = %d",$num2)."<br>"; // Número decimal con signoecho sprintf("%%e = %e",$num1)."<br>"; // Notación científica (minúscula)echo sprintf("%%E = %E",$num1)."<br>" // Notación científica (mayúscula)echo sprintf("%%u = %u",$num1)."< br>"; // Número decimal sin signo (positivo)echo sprintf("%%u = %u",$num2)."<br>"; // Número decimal sin signo (negativo)echo sprintf("%%f = %f",$num1)."<br>" // Número de punto flotante (configuración local)echo sprintf("%%F = %F",$num1)."< br>"; // Número de punto flotante (no compatible con configuración local)echo sprintf("%%g = %g",$num1)."<br>"; // Más corto de %e y %fecho sprintf("%%G = %G",$num1)."<br>"; // Más corto de %E y %fecho sprintf("%%o = %o",$num1)."<br>" ; // Número octalecho sprintf("%%s = %s",$num1)."<br>" // Stringecho sprintf("%%x = %x",$num1)."<br>"; // Número hexadecimal (minúscula)echo sprintf("%%X = %X",$num1)."<br>"; // Número hexadecimal (mayúscula)echo sprintf("%%+d = %+d", $num1)."<br>"; // Especificador de signo (positivo)echo sprintf("%%+d = %+d",$num2)."<br>"; (negativo)?>Demostración de especificadores de cadenas:
<?php$str1 = "Hola";$str2 = "¡Hola mundo!";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]",matriz($str2))."<br>" ?>