Función sprintf() de PHP

Ejemplo

Reemplaza el símbolo de porcentaje (%) con una variable que se pasa como parámetro:

<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("Hay 쥕lones de coches en %s.", $number, $str);
echo $txt;
?>

Ejemplo de ejecución

Definición y uso

La función sprintf() escribe una cadena formateada en una variable.

arg1,arg2,++ Los parámetros se insertarán en el símbolo (%) de la cadena principal. Esta función se ejecuta de manera progresiva. En el primer símbolo %, insertar arg1, en el segundo símbolo %, insertar arg2, y así sucesivamente.

Comentarios:Si hay más de un símbolo % arg Si se utilizan parámetros, debe utilizarse un marcador de posición. El marcador de posición se encuentra después del símbolo %, formado por un número y "\$". Véase el ejemplo 2.

Consejo:Funciones relacionadas: printf(), vprintf(), vsprintf(), fprintf() y vfprintf()

Sintaxis

sprintf(format,arg1,arg2,arg++)
Parámetros Descripción
format

Obligatorio. Define 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 - Cadenas
  • %x - Número hexadecimal (letras minúsculas)
  • %X - Número hexadecimal (letras mayúsculas)

Valores de formato adicionales. Deben colocarse entre % y la letra (por ejemplo %.2f):

  • + (agrega + o - delante del número para definir la signatura del número. Por defecto, solo se marca el número negativo, no el positivo)
  • ' (define qué se utiliza como relleno, por defecto es el 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] (define el ancho mínimo del valor de la variable)
  • .[0-9] (define el número de decimales o la longitud máxima de la cadena)

Comentarios:Si se utilizan varios valores de formato, deben utilizarse en el orden especificado anteriormente.

arg1 Obligatorio. Define el lugar donde se inserta format El parámetro en el primer símbolo % en la cadena.
arg2 Opcional. Define el lugar donde se inserta format El parámetro en el segundo símbolo % en la cadena.
arg++ Opcional. Define el lugar donde se inserta format El parámetro en el tercer y cuarto símbolo % en la cadena.

Detalles técnicos

Valor devuelto: Devuelve la cadena formateada.
Versión de PHP: 4+

Más ejemplos

Ejemplo 1

Uso del valor de formato %%f:

<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>

Ejemplo de ejecución

Ejemplo 2

Uso de comodines:

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

Ejemplo de ejecución

Ejemplo 3

Demostración de 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>"; // Cadenas
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 indicador (positivo)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Símbolo de indicador (negativo)
?>

Ejemplo de ejecución

Ejemplo 4

Demostración de identificadores de cadena:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
?>

Ejemplo de ejecución