Una página PHP es un archivo de texto que contiene uno o varios fragmentos de código PHP y que también puede contener fragmentos de código HTML.
Los fragmentos de código PHP están delimitados por las etiquetas <?php (etiqueta inicial) y ?> (etiqueta final). PHP puede configurarse para poder utilizar otras etiquetas delimitadoras (como <? ... ?> o <% ... %>), pero se recomienda utilizar exclusivamente <?php ... ?>.
Los fragmentos de código HTML no están delimitados, en una página PHP todo lo que no son fragmentos PHP son fragmentos HTML.
Cuando un navegador solicita una página PHP a un servidor, el servidor lee el archivo secuencialmente y va generando el resultado:
Cuando el servidor termina de leer el archivo, el servidor envía al navegador el resultado.
Es importante señalar que:
El ejemplo siguiente muestra un documento PHP que contiene un único fragmento PHP que genera un párrafo:
| Contenido del archivo PHP en el servidor | Texto recibido por el navegador |
<?php print "<p>Hola</p>"; ?> |
<p>Hola</p> |
En un fragmento PHP no pueden escribirse etiquetas HTML sueltas; el código HTML debe generarse siempre con instrucciones de PHP. El programa siguiente no puede ni siquiera ejecutarse y produce un error de sintaxis:
<?php <p>Hola</p> ?> |
Parse error: syntax error, unexpected '<' in ejemplo.php on line 2 |
En una misma página PHP pueden alternarse fragmentos PHP y fragmentos HTML. Los dos ejemplos siguientes generan el mismo código HTML.
<p> <?php print "Hola"; ?> </p> |
<p>Hola</p> |
<?php print "<p>"; ?> Hola <?php print "</p>"; ?> |
<p>Hola</p> |
Si en una misma página hay varios fragmentos PHP, se tratan como un único programa.
<?php $saludo = "Hola"; // Se define una variable print "<p>$saludo</p>"; // Se escribe el valor de la variable ?> |
<p>Hola</p> |
<?php $saludo = "Hola"; // Se define una variable ?> <p> <?php print "$saludo"; // Se escribe el valor de la variable ?> </p> |
<p>Hola</p> |
Volver al principio de la página
En un fragmento PHP se pueden comentar líneas de código utilizando:
Estos comentarios no se añaden al código HTML generado por la página, por lo que no pueden verse en el navegador.
<p><strong> <?php // La instrucción print escribe texto en la página web print "Hola"; // El comentario se puede escribir al final de la línea ?> </strong></p> |
<p><strong>Hola</strong></p> |
<p><strong> <?php # La instrucción print escribe texto en la página web print "Hola"; # El comentario se puede escribir al final de la línea ?> </strong></p> |
<p><strong>Hola</strong></p> |
<?php print "<p><strong>"; /* Dentro de un fragmento PHP no se pueden escribir etiquetas html sueltas, tienen que estar siempre incluidas en instrucciones print */ ?> Hola <?php print "</strong></p>"; ?> |
<p><strong>Hola</strong></p> |
Si se quieren escribir comentarios en los fragmentos HTML, hay que utilizar la etiqueta de comentarios de HTML <!-- .... -->.
Estos comentarios, como todo el código HTML situado en los fragmentos HTML, se incluyen sin modificaciones en el resultado, por lo que pueden verse en el navegador.
<p> <?php print "Hola"; ?> </p> <!-- El texto anterior ha sido generado por PHP --> |
<p>Hola</p>
<!-- El texto anterior ha sido generado por PHP --> |
Si se quieren escribir comentarios en las hojas de estilo CSS, hay que utilizar la etiqueta de comentarios de C /* .... */.
Estos comentarios, como todo el código CSS situado en las hojas de estilo, se incluyen sin modificaciones en el resultado, por lo que pueden verse en el navegador.
html {
background-color: #FF0000; /* #FF000000 es rojo */
}
|
html {
background-color: #FF0000; /* #FF000000 es rojo */ } |
Volver al principio de la página
Si queremos crear páginas válidas HTML debemos generar código HTML válido, es decir, generar todas las etiquetas HTML necesarias. En este curso se generarán páginas XHTML 1.0 Strict.
El ejemplo siguiente muestra el código html de una página web XHTML 1.0 Strict válida con las líneas numeradas.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Página válida XHTML 1.0 Strict</title>
</head>
<body>
<p>El código HTML de esta página es XHTML 1.0 Strict válido</p>
</body>
</html>
|
Volver al principio de la página
La página PHP debe incluir o generar todo el código HTML necesario. El ejemplo siguiente genera una página válida mediante un único fragmento PHP.
Nota: Dentro de la cadena todas las comillas están precedidas del carácter \.
<?php
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\" />
<title>Página válida XHTML 1.0 Strict</title>
</head>
<body>
<p>El código HTML de esta página es XHTML 1.0 Strict válido</p>
</body>
</html>";
?>
En principio, el mismo código html podría generarse combinando fragmentos PHP y fragmentos HTML, como en el siguiente ejemplo con dos fragmentos PHP y tres fragmentos HTML:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<?php
print " <title>Página válida XHTML 1.0 Strict</title>\n";
?>
</head>
<body>
<?php
print " <p>El código HTML de esta página es XHTML 1.0 Strict válido</p>\n";
?>
</body>
</html>
Nota: El carácter \n incluido en los print es para generar un salto de línea en el código HTML.
El problema de este código es la primera línea (la declaración xml). Si en la configuración de php, la directiva short_open_tags está establecida en On, el intérprete PHP intentará procesar la primera línea como código PHP, generando un error.
La solución es generar la primera línea en un fragmento PHP, como en el ejemplo siguiente (el fragmento PHP ocupa una sola línea para ahorrar espacio):
<?php print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<?php
print " <title>Página válida XHTML 1.0 Strict</title>\n";
?>
</head>
<body>
<?php
print " <p>El código HTML de esta página es XHTML 1.0 Strict válido</p>\n";
?>
</body>
</html>
Nota:
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; |
provoca un problema de visualización en el editor (en Eclipse no causa ningún problema). PSPad cree que los caracteres ?> cierran el fragmento PHP y el código posterior ya no se colorea correctamente. Este problema se puede resolver partiendo la cadena ?> en dos cadenas concatenadas mediante el operador . (punto)) :
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">\n"; |
Una página PHP puede enlazar a una hoja de estilo CSS exactamente igual que una página HTML, es decir, enlazando a la hoja de estilo mediante la etiqueta <link>.
Los siguientes ejemplos muestran el enlace a la hoja de estilo incluido en un fragmento HTML o generado por un fragmento PHP:
<?php print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="estilo.css" rel="stylesheet" type="text/css" title="Hoja de estilo" />
<?php
print " <title>Página válida XHTML 1.0 Strict</title>\n";
?>
</head>
<body>
<?php
print " <p>El código HTML de esta página es XHTML 1.0 Strict válido</p>\n";
?>
</body>
</html>
<?php print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<?php
print " <link href="estilo.css" rel="stylesheet" type="text/css" title="Hoja de estilo" />\n";
print " <title>Página válida XHTML 1.0 Strict</title>\n";
?>
</head>
<body>
<?php
print " <p>El código HTML de esta página es XHTML 1.0 Strict válido</p>\n";
?>
</body>
</html>
Volver al principio de la página
Esta página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Esta obra está bajo una licencia de Creative
Commons Reconocimiento-CompartirIgual 3.0 España.