sábado, 4 de septiembre de 2010

Manejo de strings con PHP

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