(PHP 4, PHP 5)
sprintf — Devuelve una cadena con formato
Devuelve una cadena producida de acuerdo con la cadena de formato formato .
La cadena de formato se compone de cero o más directivas: caracteres ordinarios (excluyendo %) que son copiados directamente en el resultado, y unas especificaciones de conversión, cada una de las cuales produce una búsqueda por su propio parámetro. Esto se aplica tanto en sprintf() como en printf().
Cada especificación de conversión consiste de un signo de porcentaje (%), seguido por uno o más de los siguientes elementos, en orden:
Un indicador de tipo que especifica el tipo bajo el que deben tratarse los datos del argumento. Los posibles tipos son:
La cadena de formato soporta la numeración/intercambio de argumentos. He aquí un ejemplo:
Example#1 Intercambio de argumentos
<?php
$formato = 'Hay %d monos en el %s';
printf($formato, $num, $ubicacion);
?>
Example#2 Intercambio de argumentos
<?php
$formato = 'El %s contiene %d monos';
printf($formato, $num, $ubicacion);
?>
Example#3 Intercambio de argumentos
<?php
$formato = 'El %2$s contiene %1$d monos';
printf($formato, $num, $ubicacion);
?>
Example#4 Intercambio de argumentos
<?php
$formato = 'El %2$s contiene %1$d monos.
Se trata de un bonito %2$s lleno con %1$d monos.';
printf($formato, $num, $ubicacion);
?>
Devuelve una cadena producida de acuerdo a la cadena de formato formato .
Versión | Descripción |
---|---|
4.0.6 | Se agregó el soporte para el intercambio y la numeración de argumentos |
Example#5 printf(): ejemplos varios
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // el valor ASCII 65 es 'A'
// note el doble %%, esto imprime un caracter '%' literal
printf("%%b = '%b'\n", $n); // representación binaria
printf("%%c = '%c'\n", $c); // imprime el caracter ascii, igual que la función chr()
printf("%%d = '%d'\n", $n); // representación de entero estándar
printf("%%e = '%e'\n", $n); // notación científica
printf("%%u = '%u'\n", $n); // representación entera sin signo de un entero positivo
printf("%%u = '%u'\n", $u); // representación entera sin signo de un entero negativo
printf("%%f = '%f'\n", $n); // representación en punto flotante
printf("%%o = '%o'\n", $n); // representación octal
printf("%%s = '%s'\n", $n); // representación de cadena
printf("%%x = '%x'\n", $n); // representación hexadecimal (minúsculas)
printf("%%X = '%X'\n", $n); // representación hexadecimal (mayúsculas)
printf("%%+d = '%+d'\n", $n); // indicador de signo en un entero positivo
printf("%%+d = '%+d'\n", $u); // indicador de signo en un entero negativo
?>
El resultado del ejemplo seria:
%b = '10100111101010011010101101' %c = 'A' %d = '43951789' %e = '4.39518e+7' %u = '43951789' %u = '4251015507' %f = '43951789.000000' %o = '247523255' %s = '43951789' %x = '29ea6ad' %X = '29EA6AD' %+d = '+43951789' %+d = '-43951789'
Example#6 printf(): indicadores de cadena
<?php
$s = 'mono';
$t = 'varios monos';
printf("[%s]\n", $s); // salida de cadena estándar
printf("[%10s]\n", $s); // alineación a derecha con espacios
printf("[%-10s]\n", $s); // alineación a izquierda con espacios
printf("[%010s]\n", $s); // el relleno con ceros funciona con cadenas también
printf("[%'#10s]\n", $s); // usar el caracter de relleno '#'
printf("[%10.10s]\n", $t); // alineación a izquierda pero con un corte de 10 caracteres
?>
El resultado del ejemplo seria:
[mono] [ mono] [mono ] [000000mono] [######mono] [varios mon]
Example#7 sprintf(): enteros con relleno de ceros
<?php
$fecha_iso = sprintf("%04d-%02d-%02d", $anyo, $mes, $dia);
?>
Example#8 sprintf(): formato de valores monetarios
<?php
$dinero1 = 68.75;
$dinero2 = 54.35;
$dinero = $dinero1 + $dinero2;
// echo $dinero imprimiría "123.1";
$con_formato = sprintf("%01.2f", $dinero);
// echo $con_formato imprime "123.10"
?>
Example#9 sprintf(): notación científica
<?php
$numero = 362525200;
echo sprintf("%.3e", $numero); // imprime 3.625e+8
?>