Hasta ahora siempre hemos
impreso dentro de la página, utilizando el comando echo, pero en ocasiones que
necesitamos mayor control sobre el formato de impresión, podemos utilizar la
función printf.
La función printf requiere
como primer parámetro una cadena de control donde se indica cómo deben
imprimirse el resto de parámetros de la misma función.
El siguiente ejemplo muestra
el contenido de una variable entera con distintos formatos, lo mismo hacemos
para una variable de tipo double:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$entero=255;
printf("Valor
entero en formato decimal %d <br>",$entero);
printf("Valor
entero en formato hexadecimal con letras minúsculas
%x<br>",
$entero);
printf("Valor
entero en formato hexadecimal con letras mayúsculas
%X<br>",
$entero);
printf("Valor
entero en formato binario %b<br>", $entero);
printf("Valor
entero en formato octal %o<br>", $entero);
$letra=65;
printf("Valor
entero como caracter ascii %c<br>", $letra);
echo
"<br>";
$real=10.776;
printf("Impresion
de un valor de tipo double %f <br>",$real);
printf("Impresion
de un valor de tipo double indicando la cantidad de decimales
a imprimir %0.2f
<br>",$real);
?>
<br>
<A
href="pagina2.php">Algunas utilidades de estas
conversiones</A>
</body>
</html>
Como podemos ver, es posible
imprimir el contenido de una variable entera en formato ASCII, decimal,
hexadecimal, octal. Y con una variable de tipo double, la podemos restringir la
cantidad de decimales que deben aparecer.
La función printf sustituye
todos los lugares en los cuales encuentra el caracter %, por el valor que le
pasamos desde el segundo parámetro en adelante. Si queremos imprimir este
caracter: %, con la función printf, debemos disponer dos: %%.
Podemos ver un uso común
para cuando imprimamos valores de tipo double y necesitemos restringir a una
determinada cantidad de decimales. Pero las otras conversiones, ¿nos servirán?
Veamos una utilidad de la
función printf formateando a tipo de dato hexadecimal:
<html>
<head>
<title>Problema</title>
</head>
<body bgcolor="<?php
printf("#%X%X%X",150,150,0); ?>">
En esta página
definimos el color de fondo indicando la cantidad de rojo,verde
y azul, en formato
decimal y solicitando a la función printf que haga la
conversión a
hexadecimal. Recordemos que la propiedad bgcolor de la
marca body, lo
requiere en hexadecimal.<br><br>
<a
href="pagina3.php">último ejemplo</a>
</body>
</html>
La función printf puede
formatear n datos en una única llamada, como ocurre en este caso:
<body bgcolor="<?php
printf("#%X%X%X",150,150,0); ?>">
Cuando tenemos los tres
valores en formato decimal, para crear un color, la función printf nos facilita
la tarea de generar el color definitivo en hexadecimal.
Por último, con la función
printf, podemos determinar el número de caracteres que va a ocupar o en su
defecto se rellenará con ceros:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$dia=6;
$mes=5;
$anio=2006;
printf("%02d/%02d/%d",$dia,$mes,$anio);
?>
</body>
</html>
Con esto logramos que una
fecha aparezca con el día y el mes siempre de dos dígitos.
Si deseamos rellenar con
otro carácter debemos disponer una simple comilla y el carácter a rellenar:
$importe=170;
printf("Valor:$%'x7d",$importe);
0 comentarios:
Publicar un comentario