Traductor

Manejo Básico de Cadenas

Función printf() en PHP

Cuando hemos querido mostrar valores o resultados en la página, existen varias funciones que debemos tener en cuenta. En algunos textos y también scripts ya hemos empleado la función print() en lugar de echo().
En el caso de estas dos da lo mismo cual empleemos, sin embargo existe una función muy interesante a la hora de mostrar ciertos resultados en la página.
Se trata de printf().
Esta función recibe dos argumentos separados por una coma.
  • El primero es una cadena de formato
  • El segundo es la cadena que queremos mostrar
De modo que nos la devuelve con el formato especificado en el primer argumento.
Veamos un ejemplo:
<?php
      $altura="45";
      echo ("Altura: ");
      printf("%2.2f",$altura);
      echo (" metros.");
?>
El resultado que veremos en el navegador será el siguiente:

Función sprintf() en PHP

La función sprintf() actúa como la anterior pero sin poder mostrar su resultado en la página, por o que este debe ser almacenado en otra variable.
Veamos un ejemplo:
<?php
      $precio1 = 68.75;
      $precio2 = 54.35;
      $precio = $precio1 + $precio2;
      echo ("El valor de \$precio es $precio<br>");
      $formateado = sprintf ("%.2f €", $precio);
      echo ("El mismo valor formateado es $formateado<br>");
?>
El resultado de la ejecución es:
Los formatos que puede recibir el argumento de las funciones son los siguientes:

FORMATO
SIGNIFICADO
d
el argumento es tratado como un entero y presentado con notación decimal
b
el argumento es interpretado como un número entero, y presentado como un número binario.
o
el argumento es tratado como un entero, y presentado como un número octal.
x
el argumento es tratado como un entero y presentado como un número hexadecimal (con minúsculas).
X
el argumento es tratado como un entero y presentado como un número hexadecimal (con mayusculas).
c
el argumento es interpretado como un entero, y presentado como el caracter ASCII con dicho valor.
f
el argumento es tratado como un double y presentado como un número de coma flotante.
e
el argumento es tratado como un entero y presentado con notación exponencial.
s
el argumento es tratado como una cadena y es presentado como tal.

Entre el signo % y el caracter que especifica el formato, podemos incluir uno o dos números, ambos opcionales. 
  • Si existen, el primer número indica el número de caracteres (anchura) que debe ocupar la cadena formateada. printf() devolverá como mínimo ese numero de caracteres, o mas si el resultado excede. Si no indicamos este número, printf() devolverá los caracteres que sean necesarios. 
  • Para rellenar los caracteres necesarios usualmente se usan espacios en blanco, aunque podemos indicar que alternativamente se usen ceros o cualquier otro caracter. 
    • Estos caracteres de relleno normalmente preceden al resultado, aunque con el - podemos hacer que vayan al final. 
      •  Si el primer numero es un cero, la anchura extra será llenada con ceros y no con espacios en blanco. 
Veamos un ejemplo de uso de printf() que aclara un poco mas la operativa de los formatos.
  • Vamos a suponer el caso de que usted quiere mostrar en una tabla el consumo de combustible de un motor a lo largo de quince días, teniendo en cuenta que gasta 17 litros diarios.
<?php
      echo ("<u>TABLA DE GASTO DE COMBUSTIBLE</u><br>");
      $formato="%'_7d * %'_3d = %'_3d<br>";
      echo ("L/diarios - Dias - Total<br>");
      for ($dia=1;$dia<=15;$dia++){
            printf($formato, 17, $dia, $dia*17);
      }
?>

El resultado de la ejecución sería:

Como ve, los datos de consumo del motor aparecen alineados, de modo que queda un resultado legible a primera vista.
Veamos como hemos obtenido esta colocación de datos:
  • En primer lugar fíjese en el uso de printf():
    • Como ve, esta función puede recibir mas de dos argumentos.Los argumentos segundo y siguientes, serán tenidos en cuenta como datos a mostrar adaptándose al formato especificado en el primer argumento.
    • Respecto a este formato encontramos varios usos.
    • Empecemos por:
      • %'_7d
        • Cunado en una definición de formato aparece el signo de porcentaje, seguido de la camilla simple, estamos indicando que el siguiente caracter debe ser usado como de relleno para conseguir una alineación de datos. En este caso es el guión bajo.
        • A continuación vemos el número 7. Esto quiere decir que el dato que se muestra, deberá ocupar 7 posiciones, completando las que faltan con el caracter de relleno.
        • Como el dato que se muestra aquí (el número 17) tiene dos caracteres, se añaden 5 caracteres de relleno.
        • Por último, la letra d especifica que el valor que se va a mostrar, debe aparecer como un número en base 10.
      • A continuación, siguiendo con la cadena de formato, encontramos un asterisco. Como este no es un caracter específico de formato, PHP lo determina como directamente imprimible.
      • Además, un caracter imprimible, determina que el siguiente formato se aplicará al tercer argumento de la función que, en este caso, es la variable $dia.
En general los formatos se estructuran de la siguiente manera.
  • Carácter de relleno:
    • Conviene especificar uno diferente del espacio en blanco, dado que, cuando hay varios espacios consecutivos, HTML los ignora.
  • Alineamiento:
    • Por defecto, la función alinea a la derecha, poniendo los caracteres de relleno a la izquierda. Si queremos cambiar esto, añadimos el signo menos.
  • Valor numéricos:
    • Determina el mínimo número de caracteres que se deben mostrar, incluyendo los del valor a mostrar y los de relleno.
  • Número de Decimales:
    • Se precede por un punto (.) y especifica cuantos decimales se deben conceder al valor a mostrar.
  • Tipo de dato:
    • Se determina según la siguiente tabla

FORMATO
SIGNIFICADO
d
el argumento es tratado como un entero y presentado con notación decimal
b
el argumento es interpretado como un número entero, y presentado como un número binario.
o
el argumento es tratado como un entero, y presentado como un número octal.
x
el argumento es tratado como un entero y presentado como un número hexadecimal (con minúsculas).
X
el argumento es tratado como un entero y presentado como un número hexadecimal (con mayusculas).
c
el argumento es interpretado como un entero, y presentado como el caracter ASCII con dicho valor.
f
el argumento es tratado como un double y presentado como un número de coma flotante.
e
el argumento es tratado como un entero y presentado con notación exponencial.
s
el argumento es tratado como una cadena y es presentado como tal.
Bien hasta aquí de las funciones printf() y sprintf().

Recuerden Comentar Compartir y Darle 
Hasta la Próxima

Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto

0 comentarios:

Publicar un comentario