Todos sabemos qué es una página HTML. Pues bien, una página php, en su más simple expresión, es archivo de código de programa PHP que tiene o produce contenido HTML; la etiqueta que identifica el inicio de un programa php (<?php…). Éste es un punto de vista desde PHP ya que también podríamos decir que ese archivo de texto es una página HTML con contenido PHP. En definitiva es una página que combina HTML con código del lenguaje PHP y que las secciones de código PHP se identifican con los escapes <?php (inicio de código PHP) y ?> (fin de código PHP). Más adelante veremos que hay otros modos para indicar las secciones de código PHP pero ésta es la más utilizada.
Ese programa encerrado entre las etiquetas de inicio y de cierre del código php se ejecutará en el servidor y el resultado se intercalará en el lugar adecuado de la salida HTML. Es decir, el navegador recibirá puro código HTML.
Éste es un ejemplo sencillo que mostrará el funcionamiento básico de PHP:
<HTML> <HEAD> <Title>Bienvenidos al curso de PHP 6</Title> <BODY> Estas líneas están escritas directamente en código HTML (código a estático). <BR> Ésta es una línea incluida dentro de la etiqueta BODY. <BR> <BR> <?php /* empieza un comentario de varias líneas continua el comentario los comentarios no salen en la página HTML */ $expresion = "1"; // aquí se hace la evaluación if ($expresion == "1") { print ("1) Empiezan líneas generadas por PHP 6<BR>"); print ("2) texto está por instrucción print de PHP (código a dinámico)"); } # Otro Comentario: estilo shell ?> </BODY> </HEAD> </HTML>
Tal como se puede observar, cada instrucción PHP finaliza con punto y coma, siguiendo el estándar del lenguaje C. La etiqueta de fin de bloque (?>) implica fin de instrucción y fin del código PHP. |
Comentarios en el código PHP
Los comentarios del código PHP siguen los estilos C, C++ y Unix:
// Comentario de una línea /* ..... */ Comentario de varias líneas # Comentario estilo shell
Código HTML resultante
El proceso en el servidor producirá este código HTML, que es el que realmente viajará hasta el navegador cliente. Tal como se puede observar, en el código han desaparecido las instrucciones PHP y se han reemplazado por sus resultados (siempre código HTML puro).
El cliente sólo precisa un navegador que sepa procesar HTML, no precisa ninguna biblioteca PHP ni ningún intérprete PHP; y en la pantalla del navegador se verá esto:
¿Qué es lo que sucedió?
El servidor, al encontrarse con una etiqueta <?php, suspendió el proceso de la página HTML y procesó el programa codificado en PHP, que en este caso:
- Define una variable
- Realiza una evaluación If
- Cumple las instrucciones que corresponden a la evaluación verdadera (eso le hizo generar una sentencia HTML que añadió a la salida)
- Fin del código PHP
Al finalizar el código PHP con la etiqueta ?> se sigue con el proceso de las etiquetas HTML.
El resultado del proceso es HTML puro, el navegador ni se enteró de lo que ocurrió en el servidor. Esto es lo que diferencia a PHP de Javascript; en Javascript el código se ejecuta en el cliente, mientras que en PHP el código se ejecuta en el servidor y al cliente sólo llega código HTML. |
Entrelazado de código HTML/PHP y viceversa
El código HTML y el código PHP puede intercarlarse sucesivamente y repetidas veces para producir la salida deseada y omitir la parte que no cumple una condición determinada:
... código HTML ... <?php if ($condición) { ?> <B>$condición es TRUE.</B> <?php } else { ?> <B>$condición es FALSE.</B> <?php } ?> ...código HTML ...
Cuando PHP encuentra el cierre "?>" se genera la salida del código HTML que aparezca a continuación, sin ningún tipo de análisis, y al volver a aparecer la etiqueta "<?php" se retoma el proceso PHP sin perder la secuencia de proceso previo.
Alternativas para la identificación del código PHP
Existen varias maneras de identificar una sección de código PHP dentro de una página PHP que combina HTML e instrucciones PHP o directamente sólo PHP; a continuación se listan las distintas alternativas posibles.
- Modo más habitual y recomendado: <?php … ?>
- Modo explícito: <script language="php"> … </script>
- Modo ASP: <% … %>
- Modo abreviado: <? … ?>
Las dos primeras opciones siempre están disponibles, en cambio para poder utilizar las dos últimas formas de identificación es necesario que configuremos el archivo php.ini. En general no se recomienda el uso de estos dos últimos tipos de etiquetas de inicio ya que hace que el código no sea tan fácilmente transportable.
Para utilizar el modo ASP cambiar la siguiente opción de Off a On:
asp_tags = On
No se recomienda el uso del modo ASP, aunque aún se puede utilizar como opción posiblemente en el futuro quede deshabilitada. |
Para utilizar el modo abreviado verificar que la siguiente opción se encuentre en On (en realidad, ése es el valor predeterminado):
short_open_tag = On
Si se piensa utilizar php en combinación con xml se deberá desactivar esta opción (asignar Off).
Como norma general, al desarrollar programas para múltiples plataformas, se recomienda utilizar la codificación más estándar posible. En este caso, <?php es la mejor opción. |
Error común: la página web muestra código PHP
Un error muy habitual en los programadores: el simple olvido de colocar la etiqueta de inicio del código <?php ocasiona que al abrir una página PHP en el navegador, en lugar de visualizar su contenido HTML, tal como se espera, muestra las sentencias del programa PHP, por ejemplo:
<html> <head> <title>Ejemplo del error olvido de la etiqueta de inicio del código PHP (file156.php)</title> </head> <body> $var =5; echo "Esto saldrá en el navegador."; ?> </body> </html>
Este código genera esta pantalla en el navegador:
Archivos include sin etiquetas de inicio y final de código
Este error se puede producir también en un archivo de include. Aunque el código principal esté bien definido con sus etiquetas de inicio y fin de código si hay una sentencia include, el archivo incluido también debe tener sus etiquetas de inicio y fin de código PHP.
<html> <head> <title>Ejemplo del error olvido de la etiqueta de inicio del código PHP (file157.php)</title> </head> <body> <?php // el archivo include debe tener codificado // las etiquetas <?php y ?> include "file158.php"; $var =5; echo "Esto saldrá en el navegador."; ?> </body> </html>
Si el archivo include "file158.php" no posee las etiquetas de inicio/fin de código se produciría un error similar al de la sección anterior:
// estamos en el archivo file158.php $var8 = 7; print "Estamos en el archivo file158.php"; ?>
Este archivo de inclusión provocará este error:
Separación de instrucciones
En PHP las instrucciones se separan mediante el uso de punto y coma:
<?php $var1 = 1; $var2 = 2; ?>
Aunque PHP nos permite "olvidarnos" del último punto y coma siempre y cuando después encuentre una etiqueta de fin de bloque. Por eso, este código también sería perfectamente válido:
<?php $var1 = 1; $var2 = 2 ?>
Para evitar problemas, lo mejor es no olvidarse del punto y coma.
$a = $b + 200; $a = $b + 200;
La permisividad en PHP
Antes de entrar en este tema debemos advertir que PHP es un lenguaje bastante permisivo con el uso de las variables y el tipo de datos, en comparación con otros lenguajes más estrictos como C++; esto a primera vista parece una ventaja pero no siempre es una ayuda dado que nos puede conducir a resultados inesperados. La recomendación es tratar de ser estricto con el uso de las variables, más adelante veremos cómo lograrlo sin que el lenguaje pierda su flexibilidad.