Copiando y pegando archivos
enteros
Programación en Internet II
Include y require
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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 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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
Para solucionar este problema, PHP posee cuatro
“construcciones” (no son funciones) denominadas:
include
require
include_once
require_once
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
Luego, en cada página del sitio donde necesitemos
mostrar el 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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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ú.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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”.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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:
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
<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>
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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>
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
El archivo botones.php:
<div id=”botones.php”>
Botones
</div>
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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 realiar tareas de
mantenimiento de un sitio de muchas páginas.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
Y cuál es la diferencia entre require y require_once, o
entre include y include_once? (nota: once en inglés quiere
decir “una sola vez”).
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
A continuación, un ejemplo
include_once y require_once:
que
utiliza
require,
Programación en Internet II
Universidad de Guadalajara | Centro
Include y require
<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>
Programación en Internet II
Universidad de Guadalajara | Centro
Descargar

Diapositiva 1