Ver índice
Presentación de números

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Funciones de salida

Ya conocemos algunas de las funciones que PHP utiliza para mostrar información –salidas– en la ventana del navegador del cliente.

Recordémoslas:

echo

La función echo, aunque admite también la forma echo(), no requiere de forma obligatoria el uso de los paréntesis. Detrás de la instrucción echo pueden insertarse: variables, cadenas (éstas entre comillas) y números (éstos sin comillas) separadas por comas.

Este es un ejemplo de código:

$a=24; $b="Pepe"; $c="<br>"; echo $a,$b,25, "Luis",$c; que produciría esta salida: 24Pepe25Luis

print()

La función print() sólo puede contener dentro del paréntesis una sola variable, o el conjunto de varias de ellas enlazadas por un punto. Aquí tienes algunos ejemplos:

print(25.3) produciría esta salida 25.3
print("Gonzalo") escribiría Gonzalo
$z=3.1416; print($z); escribiría 3.1416

Recuerda también que es posible utilizar dentro del paréntesis el concatenador de cadenas.

$h=3; $f=" hermanos"; print("Heladeria ".$h.$f) que escribiría Heladeria 3 hermanos

Salidas con formato

Ni la función echo, ni tampoco print permiten establecer una presentación (formato) en sus salidas, excepto que alguna de las variables que se use contenga el resultado de una función number_format.

La función printf() ofrece un gran número de posibilidades en este sentido. Tanto la sintaxis como los valores de los diferentes parámetros –cuando se trate de presentar números– las tienes resumidas en la tabla.

En la página siguiente veremos el uso de printf() para el tratamiento de variables tipo cadena.

Sintaxis
printf(cadena de formato,variable1,variable2,..)
Cadena de formato
"%[relleno][alineación][ancho][precisión][tipo]"
Relleno Carácter Valor Sintaxis Resultado
0 0 printf("%020d",32) 00000000000000000032
* '* printf("%'*20d",32) ******************32
espacio1) printf("%20d",32)                   32
- '-  printf("%'-20d",32) ------------------32
Observaciones
En este apartado prestaremos atención únicamente a los caracteres marcados en rojo, que son los que corresponden a las diferentes formas de relleno. Los demás parámetros los iremos tratando uno en los apartados siguientes.

Cuando se pretende rellenar con ceros –a la izquierda– basta escribir el 0 inmediatamente detrás del signo %

Si se trata de rellenar con un carácter distinto de cero debe escribirse inmediatamente después de% una comilla simple ' seguida del carácter de relleno.

Si se pretende rellenar con espacios forzados se puede escribir la comilla simple 'e inmediatamente después teclear la combinación ALT+0160 (carácter ASCII 160) usando el teclado numérico. Aunque obviamente no se visualiza el espacio si se conserva tal como puede verse en el ejemplo 1)

Obsérvese que como la tipografía es de ancho variable y que según el carácter que se use como relleno se modifica el ancho de la presentación.

Quizá convenga recordar que 32 es en este caso la variable a la que pretendemos dar formato y que ese valor podría ser sustituido por el nombre de una variable que contenga valores numéricos.
Alineación Carácter Valor Sintaxis Resultado
Ninguno Dcha printf("%020d",32) 00000000000000000032
- Izda printf("%020d",32) 32
Ninguno Dcha printf("%'*20d",32) ******************32
- Izda printf("%'*20d",32) 32******************
Ninguno Dcha printf("%020s",32) 00000000000000000032
- Izda printf("%020s",32) 32000000000000000000
Ninguno Dcha printf("%'*20s",32) ******************32
- Izda printf("%'*20s",32) 32******************
Observaciones
En los casos en que figura Ninguno en la columna Caracter tratamos de indicar que no es necesario escribir nada en la cadena de formato. Cuando aparece un signo (–) estamos indicando que debe insertarse un signo menos.

Fíjate que en los cuatro primeros supuestos el identificador de tipo es d, lo cual hace que considere la variable como numérica, mientras que en los cuatro últimos ese valor es s, con lo cual considera la variable como tipo cadena.

Cuando tratamos de rellenar una variable numérica con ceros por la derecha PHP los omite para no alterar el valor numérico en la presentación

Con cualquier otro carácter de relleno (incluidos los caracteres numéricos con ' delante) sí efectúa el relleno.
Ancho Carácter Valor Sintaxis Resultado
Entero 14 printf("%'*14d",32) ************32
Entero 17 printf("%'*-17d",32) 32***************
Decimal 14.5 printf("%'*14.5d",32) ************32
Decimal 17.8 printf("%'*-17.8d",32) 32***************
Decimal 14.5 printf("%'*14.5f",32) ******32.00000
Decimal 11.8 printf("%'*-11.8f",32) 32.00000000
Observaciones
El ancho (nº de caracteres totales) puede especificarse mediante un número entero para todo tipo de variables

Si se expresa mediante un número decimal y la variable es tipo coma flotante la parte decimal indica la precisión (nº de cifras decimales) y la parte entera el ancho como número de caracteres de la parte entera o de la parte decimal, según se rellene a la derecha o a la izquierda.
Tipo Tipo Valor Sintaxis Resultado
Presentación
en forma binaria
b printf("%'*14b",17) *********10001
Caracter
correspondiente
al código ASCII
c printf("%'*14c",97) a
Número
presentado
como entero
d printf("%'*14d",17.83) ************17
Número
presentado
con decimales
f printf("%'*14f",17.45) *****17.450000
Presentación
en forma octal
o printf("%'*14o",17) ************21
Presentación
en hexadecimal
x printf("%'*14x",170) ************aa
Presentación
en hexadecimal
X printf("%'*14X",170) ************AA
Presentación
como >cadena
s printf("%'*14s",170) ***********170