Cita: Sé para qué funciona el sprintf pero nunca me había atrevido a utilizarlo dado que cada letra al lado del % cumple determinada función ¿no?
Esa función está descripta en el manual:
Cita:
Un especificador de tipo que indica como que tipo deben ser tratados los datos del argumento. Los tipos posibles son:
% - un caracter de porcentaje literal. No se requiere argumento.
b - el argumento es tratado como un integer y presentado como un número binario.
c - el argumento es tratado como un integer y presentado como el caracter con ese valor ASCII.
d - el argumento es tratado como un integer y presentado como un número decimal (con signo).
e - el argumento es tratado como 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 (uno menos).
E - como %e pero utiliza la letra mayúscula (e.g. 1.2E+2).
u - el argumento es tratado como un integer y presentado como un número decimal sin signo.
f - el argumento es tratado como un float y presentado como un número de punto flotante (consciente de la configuración regional).
F - el argumento es tratado como un float y presentado como un número de punto flotante (no consciente de la configuración regional). Disponible desde PHP 4.3.10 y PHP 5.0.3.
g - más corto de %e y %f.
G - más corto de %E y %f.
o - el argumento es tratado como un integer y presentado como un número octal.
s - el argumento es tratado y presentado como un string.
x - el argumento es tratado como un integer y presentado como un número hexadecimal (con las letras en minúsculas).
X - el argumento es tratado como un integer y presentado como un número hexadecimal (con las letras en mayúsculas).
El primer ejemplo del mismo manual sería:
Cita:
Ejemplo #1 Intercambio de argumentos
Código PHP:
Ver original<?php
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location); ?>
Esto producirá "There are 5 monkeys in the tree". Pero imaginemos que estamos creando un string de formato en un archivo separado, generalmente por que nos gustaría internacionalizarlo y lo reescribimos así:
El primer ejemplo que te puse era una trampa de Copy+Paste... y copiaste sin revisar si estaba bien escrito, o analizar el codigo en base al manual.
Vuelve a mirarlo y luego corrigelo.
Si quieres la clave, toma este ejemplo y ejecutalo:
Código PHP:
<?php
$num = 5;
$location = "tree's";
$location = addslashes($location);
$format = "There are %d monkeys in the '%s'";
echo sprintf($format, $num, $location);
?>
Si ves como resulta, entenderás cómo deberías usar el segundo ejemplo que te pasé.