[Ir al menú de PHP]
Utilizando ficheros externos

Utilización de ficheros externos

PHP dispone de funciones que permiten insertar dentro de un documento los contenidos -totales o parciales- de otro.
Para ello dispones de las funciones:

include("nom. del fichero")

El parámetro nom. del fichero es una cadena que contiene el path y el nombre con extensión del fichero a incluir.

Pese a que en los ejemplos hemos utilizado ficheros con extensión .inc podrían incluirse f con cualquier otra extensión.

El fichero a incluir puede contener: texto, etiquetas HTML o funciones.

Si el fichero no contiene funciones se insertará en el documento de destino tantas veces como se invoque y se insertará además todo su contenido tal como puede verse en el ejemplo.

Si el fichero contiene funciones solo podrá invocarse una vez mediante la función include ya que si se hiciera una segunda llamada nos daría un mensaje de error.

Presta atención a la sintaxis de las funciones. Como puedes ver en el ejemplo comienzan con la etiqueta:

<? function nombre { ?>

y pertenecerá a esa función todo lo contenido hasta un nuevo script de PHP que únicamente contiene la } de cierre.

Es decir, el cierre de la función será una etiqueta como esta:

<? { ?>

Definidas la funciones en el fichero a incluir y colocado al comienzo de la página el script include bastaría invocar cualquiera de las funciones en cualquier punto del documento para que esa llamada sea sustituida por el contenido de la función.

Obviamente, los contenidos de las funciones no invocadas no aparecen en el documento destino.

La función require()

Tiene la misma sintaxis que include y una funcionalidad similar aunque con algunas diferencias.

Igual que ocurría con aquel, cuando un fichero es invocado por require esa llamada lo que hace es sustituirse a sí misma por el contenido del fichero especificado.

La etiqueta require -a diferencia de include- lee siempre el archivo referenciado, incluso cuando si no se ejecuta nunca y no acepta los condicionales mientras que include si los acepta.

Evitar errores por duplicidad de llamadas

Tanto con la instrucción include como con require si se trata de incluir dos o más veces un fichero que contenga funciones aparecerá un error y la página que los contenga dejará de cargarse.

Ese error lo obvian las funciones:

include_once("fichero")

y

require("fichero")

su única diferencia con include y requiere es que antes de ejecutarse comprueban si el fichero llamado ha sido incluido con anterioridad.

Si ha sido incluido, no realizan la segunda inclusión.

En los ejemplos puedes observar como no aparece mensaje de error y como el texto que era incluido dos veces ahora solo aparece vez ya que las funciones include_once o require_once impiden que eso ocurra.

Comprobando los ficheros incluidos

PHP dispone de dos funciones que permiten recoger en un array la lista de ficheros insertados en el documento mediante require, require_once, include o include_once.

Tales funciones son las siguientes:

$v=get_included_files()

Recogería en un array escalar (contenido en la variable $v) los nombres de los ficheros incluidos en el archivo en uso mediante la función include_once.

Según las especificaciones técnicas de la página oficial de PHP, en la versión En PHP 4.0.1pl2 solo recogería los nombres de los ficheros incluidos en el caso de que aquellos tuvieran extensión .php.

Las versiones posteriores parecen no tener esa limitación.

$v=get_required_files()

Igual que la función anterior recogería en un array escalar (contenido en la variable $v) los nombres de los ficheros incluidos en el archivo en uso mediante la función require_once.

Igual que ocurre con aquella, en la versión 4.0.1pl2 solo recogería los nombres de los ficheros incluidos en el caso de que aquellos tuvieran extensión .php.


 
 


La función include

Este es el código fuente de un fichero que contiene funciones PHP que pueden ser invocadas desde cualquier otro documento PHP.

El fichero
<? function Encabezado() {  ?>
<HTML>
      <head>
		<title>
		PHP
		</title>
     </head>
    <BODY>
		<center><img src="./images/dumi.jpg"><br>
<font size=6 face="Times" color="#0000ff">Aprendiendo PHP</font><br>
<hr width=75%>	

<? } ?>

<? function Pie() { ?>

<center><hr width=50%>
<font size=2 face="Arial" color="#ff0000">Memorias de un aprendiz</font>
<hr width=50%></center>
</body>
</html>

<? } ?>

<? function Otra() { ?>
<h2>Esto es otra cosilla</h2>

<? } ?>



Ver ejemplo1.inc


Este otro fichero contiene unicamente texto y etiquetas HTML pero no contiene ninguna llamada a ninguna función PHP.


<h3><font color="#ff0000">Este sería un texto
                   que se incluiría dentro de la página 
                   mediante la funciones
       include o require</font></h3><br>


Ver ejemplo2.inc

Aquí tienes el código de un documento en el que se invocan los dos documentos anteriores mediante la función include.


<? include("ejemplo1.inc") ?>

<? Encabezado() ?>
Aquí iría el contenido de la página<br>
....................<br>
...........................<br><br><br>
<? include("ejemplo2.inc") ?>
....................<br>
...........................<br><br><br>
<? include("ejemplo2.inc") ?>

<? Pie() ?>


Ver ejemplo73.php


La función include_once


<? include_once("ejemplo1.inc") ?>
<? Encabezado() ?>
Aquí iría el contenido de la página<br>
....................<br>
...........................<br><br><br>
<? include_once("ejemplo2.inc") ?>
....................<br>
...........................<br><br><br>
<? include_once("ejemplo2.inc") ?>
<? include_once("ejemplo1.inc") ?>
<? Pie() ?>



Ver ejemplo74.php


La función require_once


<? require_once("ejemplo1.inc") ?>
<? Encabezado() ?>
Aquí iría el contenido de la página<br>
....................<br>
...........................<br><br><br>
<? require_once("ejemplo2.inc") ?>
....................<br>
...........................<br><br><br>
<? require_once("ejemplo2.inc") ?>
<? require_once("ejemplo1.inc") ?>
<? Pie() ?>



Ver ejemplo75.php


La función get_included_files()


<? include_once("ejemplo1.inc") ?>
<? Encabezado() ?>
Aquí iría el contenido de la página<br>
....................<br>
...........................<br><br><br>
<? include_once("ejemplo2.inc") ?>
....................<br>
...........................<br><br><br>
<? include_once("ejemplo2.inc") ?>
<? include_once("ejemplo1.inc") ?>
<? Pie() ?>

Lista de fichero utilizados por include
<? $z= get_included_files(); foreach($z as $clave=>$valor) { echo "Clave: ",$clave," Valor: ",$valor,"<br>"; }; ?>


Ver ejemplo76.php


La función get_required_files()


<? require_once("ejemplo1.inc") ?>
<? Encabezado() ?>
Aquí iría el contenido de la página<br>
....................<br>
...........................<br><br><br>
<? require_once("ejemplo2.inc") ?>
....................<br>
...........................<br><br><br>
<? require_once("ejemplo2.inc") ?>
<? require_once("ejemplo1.inc") ?>
<? Pie() ?>

Lista de fichero utilizados por require
<? $z= get_required_files(); foreach($z as $clave=>$valor) { echo "Clave: ",$clave," Valor: ",$valor,"<br>"; }; ?>


Ver ejemplo77.php

Sugerir a un/a amig@ Envíame tus comentarios
Anterior
Indice
Siguiente