Función vsprintf() de PHP

Ejemplo

Escribir la cadena de formato en la variable:

<?php
$number = 9;
$str = "Beijing";
$txt = vsprintf("Hay 쥕lones de bicicletas en %s.", array($number, $str));
echo $txt;
?>

Ejemplo de ejecución

Definición y uso

La función vsprintf() escribe la cadena de formato en la variable.

Diferente de sprintf(), los parámetros en vsprintf() se encuentran en un array. Los elementos del array se insertarán en el símbolo de porcentaje (%) del string principal. La función se ejecuta de manera gradual. En el primer símbolo %, se inserta el primer elemento del array, en el segundo símbolo %, se inserta el segundo elemento del array, y así sucesivamente.

Comentarios:Si hay más símbolos % arg Si se proporcionan parámetros, debe utilizar marcadores de posición. Los marcadores de posición se insertan después del símbolo % y consisten en un número y "\$". Véase el ejemplo 2.

Consejo:Funciones relacionadas:

Sintaxis

vsprintf(format,argarray)
Parámetros Descripción
format

Obligatorio. Especifica la cadena y cómo formatear las variables dentro de la misma.

Valores de formato posibles:

  • %% - Devuelve un porcentaje %
  • %b - Número binario
  • %c - Carácter correspondiente al valor ASCII
  • %d - Número decimal con signo (número negativo, 0, número positivo)
  • %e - Usa la notación científica en minúsculas (por ejemplo 1.2e+2)
  • %E - Usa la notación científica en mayúsculas (por ejemplo 1.2E+2)
  • 蒧úmero decimal sin signo (mayor o igual a 0)
  • %f - Número de coma flotante (configuración local)
  • %F - Número de coma flotante (sin configuración local)
  • %g - %e y %f más cortos
  • %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. Deben colocarse necesariamente entre % y la letra (por ejemplo %.2f):

  • + (antes de un número, añade + o - para definir la signo del número. Por defecto, solo se marca el número negativo, no el positivo)
  • ' (especifica qué se utiliza como relleno, por defecto es un espacio. Debe utilizarse junto con el especificador de ancho. Por ejemplo: '%'x20s (usando "x" como relleno))
  • - (ajusta a la izquierda el valor de la variable)
  • .[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)

Comentarios:Si se utilizan varios valores de formato anteriores, deben utilizarse en el orden indicado y no pueden desordenarse.

argarray Obligatorio. Un array con parámetros que se insertarán format En el símbolo % dentro de la cadena.

Detalles técnicos

Valor devuelto: Devuelve el valor del array en forma de cadena formateada.
Versión de PHP: 4.1.0+

Más ejemplos

Ejemplo 1

Se utiliza el valor de formato %f:

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

Ejemplo de ejecución

Ejemplo 2

Usar placeholders:

<?php
$number = 123;
$txt = vsprintf("Con dos decimales:%1$.2f<br>Sin decimales:%1$u",array($number));
echo $txt;
?>

Ejemplo de ejecución

Ejemplo 3

Usar sprintf() para mostrar todos los posibles valores de formato:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // El carácter ASCII 50 es 2
// Comentario: El valor de formato "%%" devuelve el símbolo de porcentaje
echo sprintf("%%b = %b",$num1)."<br>"; // Número binario
echo sprintf("%%c = %c",$char)."<br>"; // Carácter ASCII
echo sprintf("%%d = %d",$num1)."<br>"; // Número decimal con signo
echo sprintf("%%d = %d",$num2)."<br>"; // Número decimal con signo
echo 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",$num1)."<br>"; // Número decimal sin signo (positivo)
echo sprintf("%鑾u",$num2)."<br>"; // Número decimal sin signo (negativo)
echo sprintf("%%f = %f",$num1)."<br>"; // Número de coma flotante (considerando la configuración local)
echo sprintf("%%F = %F",$num1)."<br>"; // Número de coma flotante (sin considerar la configuración local)
echo sprintf("%%g = %g",$num1)."<br>"; // Corto en comparación con %%e y %%f
echo sprintf("%%G = %G",$num1)."<br>"; // Corto en comparación con %%E y %%f
echo sprintf("%%o = %o",$num1)."<br>"; // Número octal
echo sprintf("%%s = %s",$num1)."<br>"; // Cadena
echo sprintf("%%x = %x",$num1)."<br>"; // Número hexadecimal (minúsculas)
echo sprintf("%%X = %X",$num1)."<br>"; // Número hexadecimal (mayúsculas)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Símbolo de signo (positivo)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Símbolo de signo (negativo)
?>

Ejemplo de ejecución

Ejemplo 4

Demostración de caracteres de cadena:

<?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>";
?>

Ejemplo de ejecución