Inclusión de ficheros en PHP

Iniciado por madpitbull_99, 25 Abril 2011, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

madpitbull_99

Inclusión de ficheros en PHP

Vamos a ver las distintas formas para incluir un fichero en nuestro script PHP.  Esta facilidad del lenguaje se utiliza principalmente para la definición de librerías, clases, varios script, permitiendo, de este modo, una reutilización y mantenimiento del código más óptimos. La extensión del fichero a incluir puede ser de cualquier tipo, ya sea .php, .htm, .txt, .inc, etc.

PHP dispone de una variedad de funciones que nos permiten la inclusión de ficheros en nuestros scripts. Las funciones de las que hablaremos en este articulo son las siguientes:

include()
Esta función incluye y evalúa un fichero externo cada vez que es interpretada. La inclusión del fichero externo y su posterior evaluación, se realizan cada vez que el flujo del programa llega a una línea que

contenga la llamada a esta función. En caso de no encontrar el fichero especificado, se genera un warning (advertencia) y se sigue la ejecución del script.

Cuando un archivo es incluido con esta función, el intérprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al acabar de leer dicho archivo.

Si el código contenido dentro del archivo incluido contiene instrucciones PHP, dichas instrucciones deberán estar encerradas entre las etiquetas de inicio y fin de código PHP (<?php ?>).

include_once()
Funciona igual que la anterior, con la única diferencia de que esta función solo cargará y evaluará el archivo incluido solo una vez, como máximo. Con esta instrucción nos aseguramos de que un fichero sólo se ha cargado una vez a lo largo de la ejecución del script, evitando errores producidos por la redefinición de funciones o la reasignación de valores.

require()
Hace lo mismo que las funciones anteriores, pero con algunas diferencias. Sólo incluye el fichero referenciado, es decir, no lo interpreta. Su comportamiento es equivalente a la directiva #include del lenguaje C/C++.

Esta función no puede ser utilizada con en estructuras condiciones o de control de bucles porque el contenido del fichero referenciado se  incluye antes de que se evalúe la sentencia que lo contiene y se incluye siempre aunque la condición que lo contiene no se cumpla.

En caso de que el archivo pasado como parámetro a esta función no exista, se generará un error fatal que no permitirá con la ejecución del script. Es bastante desaconsejable pasar variables como parámetros a esta función.

require_once()
Evita la carga del fichero referenciado en más de una ocasión. Hace exactamente que include_once() pero hereda el comportamiento básico de su función padre require().

La función que se va a emplear depende del tipo de aplicación que estamos desarrollando y del programador, hay que elegir la que más se ajuste, no hay ninguna favorita.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

merolhack

Hola,

yo cuando uso el include, primero reviso si existe o no el archivo, asi se evita el típico error mostrando la ruta del servidor, evitando mostrar información de más....

<?php
$filename 
'foo.txt';

if (
file_exists($filename)) {
    include( 
'/path/to/' $filename );
} else {
    echo 
"The file $filename does not exist";
}
?>

Fuente: http://php.net/manual/en/function.file-exists.php
PHP Web Developer
Joomla, jQuery, MySQL, CSS, etc...

Android APP Developer http://android-dev.tumblr.com/

~ Yoya ~

Buenas Mad, estas un poco equivocado.

index.php
Código (php) [Seleccionar]
<?php

if(1):
require('a.php');
endif;

echo 
'Yoya';
?>



a.php
Código (php) [Seleccionar]
<?php

echo "Hola mundo";

?>


Al ejecutar el source, la salida es:
Hola mundoYoya






CitarEsta función no puede ser utilizada con estructuras condiciones o de control de bucles porque el contenido del fichero referenciado se  incluye antes de que se evalúe la sentencia que lo contiene y se incluye siempre aunque la condición que lo contiene no se cumpla.

Código (php) [Seleccionar]
<?php

if(== 2):
require('a.php');
endif;

echo 
'Yoya';
?>



La condicion nose cumple por lo tanto nose llega a ejecutar lo que esta dentro del if().
Salida:
Yoya




Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

madpitbull_99

@Yoya

Lo que dices es cierto, pero yo no me refería a esto, quise decir en estructuras de control.

Por ejemplo:

a.php:
Código (php) [Seleccionar]
<?php
if (require("b.php")) {
echo "Ok";
}
?>


Y el fichero b.php:
Código (php) [Seleccionar]
<?php
echo 
"Hola desde archivo b.php\n";
?>


Si ejecutas el archivo a.php obtendrás la siguiente salida:
Hola desde archivo b.php
Ok


Si te das cuenta, primero evalúa el contenido del archivo b.php y después muestra Ok.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red