Primeras páginas en PHPUn 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> |
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> |
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" />
<?php
print "<title>Prueba</title>\n";
?>
</head>
<body>
<?php
print "<p>Hola</p>\n";
?>
</body>
</html>
|
Hola |
Esta obra está bajo una licencia de Creative
Commons.