Volver al índice Primeras páginas en PHP

Un documento PHP es un archivo de texto que contiene etiquetas html y segmentos de código PHP. Los segmentos de código PHP están delimitados por las etiquetas <?php (etiqueta inicial) y ?> (etiqueta final).

Cuando un navegador solicita una página PHP a un servidor, el servidor lee el documento y ejecuta las instrucciones que se encuentran en los segmentos de código PHP. Si esas instrucciones generan texto, el servidor sustituye el segmento PHP por el texto. Finalmente, el servidor entrega al navegador el resultado final.

El ejemplo siguiente muestra un documento PHP que simplemente genera un párrafo.

<?php
print "<p>Hola</p>";
?>
<p>Hola</p> Hola

En un mismo documento 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>

Comentarios

Dentro de un fragmento PHP, se pueden comentar líneas de código utilizando:

<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>

Volver al principio de la página


Crear páginas válidas

Para que el resultado final sea una página web válida, el documento PHP debe incluir o generar todo el código HTML necesario, incluidas las etiquetas generales. El ejemplo siguiente genera una página válida mediante un único fragmento PHP.

<?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>Prueba</title>
</head>
<body>
  <p>Hola</p>
</body>
</html>';
?>
Hola

El código HTML puede estar fuera de un fragmento PHP, salvo la instrucción xml de la primera línea, que podría dar problemas dependiendo de la configuración del servidor (si la directiva short_open_tags está establecida en On). El siguiente ejemplo, en el que se intercalan varios fragmentos PHP, no daría problemas:

<?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>Prueba</title>\n";
?>
</head>
<body>
<?php
print "<p>Hola</p>\n";
?>
</body>
</html>
Hola

En algunos editores que colorean el código, como PSPad, la instrucción:

print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";

provoca un pequeño problema de visualización (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";

De esta manera, el ejemplo anterior quedaría así:

<?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" />
  <title>Prueba</title>
</head>
<body>
<?php
print "<p>Hola</p>\n";
?>
</body>
</html>
Hola

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
Autor: Bartolomé Sintes Marco
Última modificación: 12 de febrero de 2009

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.