sprintf
Devuelve un string formateado
&reftitle.description;
stringsprintf
stringformat
mixedargs
mixed...
Devuelve un string producido según el string de formateo dado por
format.
&reftitle.parameters;
format
El string de formateo está compuesto de cero o más directivas:
caracteres ordinarios (excluyendo %) que son
copiados directamente al resultado, y especificaciones
de conversión, donde cada una de las cuales da lugar a extraer
su propio parámetro. Esto se aplica tanto para sprintf
como para printf.
Cada especificación de conversión consiste en un signo de porcentaje
(%), seguido por uno o más de estos
elementos, en orden:
Un especificador de signo opcional que fuerza a usar
un signo (- o +) en un número. Por defecto, sólo el signo - se utiliza
en un número si es negativo. Esta especificación fuerza números positivos
para que también tengan adjunto el signo + (agregado en PHP 4.3.0).
Un especificador de relleno opcional que
indica qué carácter se utiliza para rellenar el resultado hasta
el tamaño justo del string. Este puede ser un carácter de espacio o un
0 (el carácter cero). El valor por defecto es rellenar
con espacios. Un carácter de relleno alternativo se puede especificar
prefijándolo con una comilla simple (').
Ver los ejemplos más adelante.
Un especificador de alineación opcional que indica
si el resultado debe ser alineado a la izquierda o a la derecha.
El valor por defecto es justificado a la derecha, un carácter
- lo justificará a la izquierda.
Un número opcional, un especificador de ancho
que indica de cuántos caracteres (mínimo) resultará esta
conversión.
Un especificador de precisión opcional en la forma
de un punto (.) seguido de un string opcional de dígitos decimales
que indica cuántos dígitos decimales deben mostrarse para
los números de punto flotante. Cuando se utiliza este especificador con un string,
actúa como un punto de corte, estableciendo un límite máximo de caracteres al
string. Además, el carácter para empleado cuando se rellena un
número podría especificarse opcionalmente entre el punto y el
dígito.
Un especificador de tipo que indica con qué tipo
deben ser tratados los datos del argumento. Los tipos posibles son:
% - un carácter de porcentaje literal. No
se requiere argumento.
b - el argumento es tratado como un valor de tipo
integer y presentado como un número binario.
c - el argumento es tratado como un valor de tipo
integer y presentado como el carácter con ese valor
ASCII.
d - el argumento es tratado como un valor de tipo
integer y presentado como un número decimal (con signo).
e - el argumento es tratado con notación
científica (e.g. 1.2e+2).
El especificador de precisión indica el número de dígitos después del
punto decimal a partir de PHP 5.2.1. En versiones anteriores, se tomó como
el número de dígitos significativos (menos uno).
E - como %e pero utiliza
la letra mayúscula (e.g. 1.2E+2).
f - el argumento es tratado como un valor de tipo
float y presentado como un número de punto flotante (considerando la configuración regional).
F - el argumento es tratado como un valor de tipo
float y presentado como un número de punto flotante (no considerando la configuración regional).
Disponible desde PHP 4.3.10 y PHP 5.0.3.
g - lo mismo que %e y
%f.
G - lo mismo que %E y
%f.
o - el argumento es tratado como un valor de tipo
integer y presentado como un número octal.
s - el argumento es tratado y
presentado como un string.
u - el argumento es tratado como un valor de tipo
integer y presentado como un número decimal sin signo.
x - el argumento es tratado como un valor de tipo integer
y presentado como un número hexadecimal (con las letras
en minúsculas).
X - el argumento es tratado como un valor de tipo integer
y presentado como un número hexadecimal (con las letras
en mayúsculas).
Las variables serán forzadas por el especificador a un tipo adecuado:
Manejo de tipos
Tipo
Especificador
string
s
integer
d,
u,
c,
o,
x,
X,
b
double
g,
G,
e,
E,
f,
F
Intentar usar una combinación de especificadores de string y ancho con conjuntos de caracteres que requieran más de un byte por carácter podría tener resultados inesperados.
El string de formato soporta la numeración/intercambio de argumentos. Aquí está un
ejemplo:
Intercambio de argumentos
]]>
Esto producirá " Hay 5 monos en el árbol". Pero
imaginemos que estamos creando un string de formato en un fichero aparte,
generalmente por que nos gustaría internacionalizarlo,
reescribiéndolo así:
Intercambio de argumentos
]]>
Ahora tenemos un problema. El orden de los marcadores de posición en el
string de formato no coincide con el orden de los argumentos en el
código. Nos gustaría dejar el código tal cual y simplemente indicar
en el string de formato a cuáles argumentos de los marcadores de posición se refieren.
Tendríamos que escribir el string de formato de esta forma:
Intercambio de argumentos
]]>
Un beneficio adicional es que se pueden repetir los marcadores de posición sin
agregar más argumentos en el código. Por ejemplo:
Intercambio de argumentos
]]>
Cuando se utiliza el intercambio de argumentos, el especificador de posición
n$ debe ir inmediatamente
después del signo de porcentaje (%), antes de cualquier otro
especificador, tal como se muestra en el ejemplo siguiente.
Especificar un carácter de relleno
]]>
&example.outputs;
Especificador de posición con otros especificadores
]]>
&example.outputs;
Tratar de utilizar marcadores de posición mayores que
PHP_INT_MAX provocará que
sprintf genere mensajes de advertencia.
El especificador de tipo c ignora el relleno y el ancho
args
...
&reftitle.returnvalues;
Devuelve un string producido de acuerdo con el string de formato
format.
&reftitle.examples;
printf: ejemplos varios
]]>
&example.outputs;
printf: especificadores de string
]]>
&example.outputs;
sprintf: valores de tipo integer rellenados con ceros
]]>
sprintf: formato de moneda
]]>
sprintf: notación científica
]]>
&reftitle.seealso;
printf
sscanf
fscanf
vsprintf
number_format