Include y Require en PHP

Include y Require en PHP
COMPÁRTELO:

Copiando y pegando archivos enteros | Los rompecabezas de include y require

Es normal que varias páginas de un sitio o aplicación Web contengan elementos en común que se repiten una y otra vez a lo largo de decenas de páginas.

Por ejemplo, un mismo encabezado de página, un mismo menú de navegación, o un mismo pie de página.

En esos casos, no sería nada práctico que el código HTML de esos bloques se repitiera idénticamente en cada uno de los numerosos archivos HTML del sitio, ya que cuando llegue el momento de modificar el contenido de alguno de estos elementos (agregar un botón nuevo en el menú, o un simple cambio de teléfono en un pie de página), será necesario hacer el cambio en cada uno de los archivos que muestran ese bloque, y luego estaremos obligados a subir por FTP al servidor quizás decenas, o cientos, o miles de archivos.

Para solucionar este problema, PHP posee cuatro “construcciones” (no son funciones) denominadas:

  1. include
  2. require
  3. include_once
  4. require_once

La idea al utilizarlas es que colocaremos, en un archivo aparte, los contenidos que tengan en común muchas páginas.

Por ejemplo, ubicaremos, en un en un archivo denominado menu.php, el código fuente necesario para que se vea el menú, el código del pie de página lo situaremos en otro archivo aparte llamado pie.php, y así sucesivamente con todos los elementos comunes a varias páginas.

Luego, en cada página del sitio donde necesitemos mostrar ese menú o ese pie, le ordenamos al software intérprete de PHP que incluya el código completo del archivo en cuestión en el lugar exacto en el que lo especificamos.

Esta orden realiza automáticamente una tarea similar a la que haríamos manualmente si seleccionáramos el código de esos archivos externos (menú.php, pie.php, etc.), los copiaremos y los pegaremos luego en cada una de las páginas en las que queremos mostrar ese pie o ese menú.

De esta manera, cuando fuera necesario realizar un cambio a alguno de esos archivos, lo haremos en el archivo que contiene exclusivamente el código del menú, o el del pie de página, y terminados los cambios de contenido de esos archivos únicos, los subiremos por FTP, y no tendremos que cambiar absolutamente nada en las otras decenas, o cientos, o miles de páginas que conforman el sitio, que reflejarán los cambios de inmediato, ya que en ellas sólo dice “mostrar aquí lo que haya en menu.php”.

El código de este archivo  pagina.php –que simula ser una de las tantas páginas estándar del sitio- quedaría de la siguiente manera.

<html>
<head>
<title>Página que incluye otros archivos</title>
</head>
<body>
<div id=”contenedor”>
<?php require (“encabezado.php”); ?>
<div id=”contenido-principal”>
Contenido Principal
</div>
<?php include (“botones.php”); ?>
<?php include (“pie.php”); ?>
</div><!-- Cierre del contenedor-->
</body>
</html>

Y, además tendríamos un archivo por cada bloque de página que deseamos independizar:

El archivo encabezado.php:

<div id=”encabezado”>
Encabezado
</div>

El archivo botones.php:

<div id=”botones.php”>
Botones
</div>

El archivo pie.php:

<div id=”pie.php”>
Pie
</div>

Queda claro entonces que include nos brinda un enorme ahorro de tiempo a la hora de realizar tareas de mantenimiento de un sitio de muchas páginas.

Diferencias entre include y require son mínimas, simplemente se diferencian por el tipo de error que generan si fracasan en su intento de incluir un archivo (por ejemplo,  si ese archivo no existe porque lo borramos o renombramos).

Un incluce crea en ese caso, un Warning; esto es: envía una advertencia por pantalla, pero no interrumpe la ejecución del resto del archivo.

En cambio, cuando falla la orden require genera un Fatal error, que interrumpe definitivamente en ese punto la ejecución del archivo que estaba haciendo el intento de inclusión.

Por lo tanto, en casos en los que sea absolutamente imprescindible contar con los datos que estaban guardados en el archivo externo que se iba a incluir, es mejor usar require (un caso típico son los archivos externos que contienen usuario y contraseña de una base de datos, ya que si no accedemos a esos datos clave, ya no tiene sentido continuar la ejecución de las órdenes que vengan a posterior; en ese caso, sería aconsejable utilizar require).

Y cuál es la diferencia entre require y require_once, o entre include e include_once? (nota: once en inglés quiere decir “una sola vez”).

Con require_once o include_once, si el archivo ya ha sido incluido en la misma página con anterioridad, no se volverá a insertar por segunda vez.

Esto puede ser útil en los casos en los que un mismo archivo pudiera ser potencialmente incluido más de una vez durante la ejecución de un código, debido a la complejidad del código, y se quiera estar seguro de que se inserta una sola vez, para evitar problemas con redifiniciones de funciones, valores de variables, etc.

A continuación, un ejemplo que utiliza require, include_once y require_once:

<html>
<head>
<title>Página que incluye otros archivos</title>
</head>
<body>
<div id=”contenedor”>
<?php require (“encabezado.php”); ?>
<div id=”contenido-principal”>
Contenido Principal
</div>
<?php include_once (“botones.php”); ?>
<?php require_once (“pie.php”); ?>
</div><!--  cierre de contenedores -->
</body>
</html>

Compártelo:

Profesor en la Universidad de Guadalajara

Hugo Delgado Desarrollador y Diseñador Web en Puerto Vallarta

Profesional en Desarrollo y Posicionamiento Web desde hace más de 10 años continuos.
Contamos con más de 200 constancias y reconocimientos en la trayectoria Académica y Profesional, incluidos diplomados certificados por Google.

ARTÍCULOS POPULARES:

Siguiente ⇒


Comentarios en PHP
 

Deja un Comentario

Recomendado para ti: