AnteriorPosterior

9. Inclusión de ficheros

Por: Nacho Cabanes
Actualizado: 27-04-2019 08:56
Tiempo de lectura estimado: 5 min.

 

PHP

9. Inclusión de ficheros

Es muy frecuente que las páginas web de un cierto sitio tengan una cabecera común y un pie común, que son iguales (o muy parecidos) en todas ellas.

Eso supone que si tenemos 20 páginas parecidas y queremos hacer un cambio en todas ellas, deberíamos ir modificándola una por una.

Esto es un caso bastante más frecuente de lo que parece. Ocurre por ejemplo cuando tenemos toda una estructura de un sitio web, y todas las páginas tienen un menú en la parte superior. Si queremos hacer un cambio en el menú de todas las páginas, la alternativa "convencional" sería modificarlas una a una (o quizá usar alguna herramienta que reemplace textos de forma repetitiva).

Una alternativa cómoda es que esa cabecera, o ese pie, o un menú, esté en un fichero independiente, y lo "incluyamos" desde cada una de las páginas. Así, si queremos hacer cambios, sólo será necesario retocar el fichero de la cabecera, o del pie, o del menú, y todas las demás páginas lo reflejen inmediatamente. La forma de conseguirlo sería la siguiente:

El fichero que se enlazaría desde todos podría ser un fragmento de fichero HTML totalmente normal, sin cabeceras como HEAD y BODY:

<a href="menu1.php">Opción 1</a>
<a href="menu2.php">Opción 2</a>

Y los ficheros que accedieran a él, usarían la orden "include", a la que se le indica el nombre de fichero que se quiere insertar en ese punto (por ejemplo, menu.php):

<html>
<body>
Principio de la pagina<br>
Menu: <?php include "menu.php" ; ?><br />
Fin de la pagina<br>
</body>
</html>

La persona que visitara nuestra web vería una única página totalmente normal, el resultado de fusionar nuestra página "principal" con todas las páginas "auxiliares" que hayamos incluido:

<html>
<body>
Principio de la pagina<br>
Menu: <a href="menu1.php">Opción 1</a>
<a href="menu2.php">Opción 2</a><br />
Fin de la pagina<br>
</body>
</html>

Pero cuando estamos trabajando con PHP, eso nos da más juego: podemos crear una "biblioteca" que recopile nuestras funciones habituales, y enlazarlas desde cualquier otra página para tener acceso a dichas funciones. Así, partiendo del ejemplo de la lección anterior, podríamos crear un fichero llamado "biblioteca.php" que contuviera

<?php
function escribirTitulo($texto)   {
    echo "<h1>". ucwords(strtolower($texto)) . "</h1>";
}
?>

y otro fichero llamado "ejemplo.php" que la usara, podría ser así:

<html>
<body>
<?php  
include "biblioteca.php";
escribirTitulo("Bienvenido");
echo "Estamos utilizando la biblioteca";
?>
</body>
</html>

Nota: nuestros ficheros incluidos podrían tener un nombre terminado en ".inc" , ".html" o cualquier otro, ya que van a ser incluidos en uno que ya de por sí es ".php". De todas formas, es recomendable que su extensión sea ".php", para que los usuarios de nuestras páginas no tengan acceso al código fuente, aunque pudieran llegar a acertar el nombre del fichero (si el servidor sabe que es un fichero PHP, no dejará que el navegador vea su código fuente, sino que envía los resultados correspondientes, pero si no sabe que se trata de PHP -porque la extensión sea distinta-, quizá sí deje ver el código fuente).

Ejercicio propuesto 9.1: Crea tres páginas que compartan una cabecera común (basta con que sea un texto de "Bienvenido"). Incluye esa cabecera común con "include", en vez de repetirla en todas ellas.

4381 visitas desde el 27-04-2019

AnteriorPosterior