Vamos a ver algunas funciones útiles para el manejo y formateo de cadenas en PHP.
Para aplicar un formato personalizado PHP nos ofrece algunas opciones, entre ellas cabe destacar printf() y todas sus variantes como sprintf(), vprintf() y vsprintf(). Su uso es sencillo si conocemos los distintos códigos de formato que debemos aplicar.
$npedido = 129;
$total = 202.55;
printf("Total del pedido número %u = $.2f €", $npedido, $total);
//en este caso estamos imprimiendo la cadena:
//Total del pedido número 129 = 202.55 €
La diferencia entre printf() y sprintf() es que la primera imprime el resultado y la segunda simplemente lo devuelve. Además, es posible utilizar la numeración de elementos para no tener que depender del orden de las especificaciones de conversión al pasar las variables a la función o para poder repetir alguna de ellas.
printf("%1$/u - Total del pedido número %1$/u = %\2$.2f €",
$npedido, $total);
//imprimiria en la página:
//129 - Total del pedido número 129 = 202.55 €
Del mismo modo, podemos pasar un array en lugar de un número concreto de variables. Para ello debemos utilizar la función vprintf().
$arr = array(129, 202.55);
vprintf("Total del pedido número %u = $.2f €", $arr);
En esta tabla se indican los diferentes códigos de especificación de conversión.
| Tipo | Significado |
|---|---|
| b | Interpretado como un entero y se imprime como un número binario |
| c | Interpretado como un entero y se imprime como un carácter |
| d | Interpretado como un entero y se imprime como un número decimal |
| f | Interpretado como un doble y se imprime como un número con coma flotante |
| o | Interpretado como un entero y se imprime como un número octal |
| s | Interpretado como una cadena y se imprime como una cadena |
| u | Interpretado como un entero y se imprime como un decimal sin signo |
| x | Interpretado como un entero y se imprime como un número decimal con minúsculas para los dígitos a-f |
| X | Interpretado como un entero y se imprime como un número hexadecimal con mayúsculas para los dígitos A-F |