elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:13  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Inclusión de ficheros en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Inclusión de ficheros en PHP  (Leído 1,490 veces)
madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.898



Ver Perfil WWW
Inclusión de ficheros en PHP
« en: 25 Abril 2011, 19:58 »

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.


« Última modificación: 26 Abril 2011, 13:20 por madpitbull_99 » En línea



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

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

Desconectado Desconectado

Mensajes: 277

Me encanta Joomla y lo que puedo hacer con el


Ver Perfil WWW
Función File Exist
« Respuesta #1 en: 25 Abril 2011, 23:54 »

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....

Código:
<?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


En línea

PHP Web Developer
Joomla, jQuery, MySQL, CSS, etc...

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

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Inclusión de ficheros en PHP
« Respuesta #2 en: 26 Abril 2011, 00:00 »

Buenas Mad, estas un poco equivocado.

index.php
Código
<?php
 
if(1):
require('a.php');
endif;
 
echo 'Yoya';
?>
 

a.php
Código
<?php
 
echo "Hola mundo";
 
?>

Al ejecutar el source, la salida es:
Código:
Hola mundoYoya





Citar
Esta 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
 
if(1 == 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:
Código:
Yoya



En línea

madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.898



Ver Perfil WWW
Re: Inclusión de ficheros en PHP
« Respuesta #3 en: 26 Abril 2011, 13:26 »

@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	
if (require("b.php")) {
echo "Ok";
}
?>

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

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

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



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

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Remote File Inclusion
Bugs y Exploits
shy 10 12,200 Último mensaje 29 Marzo 2006, 05:44
por LastDragon
Remote file inclusion
Nivel Web
krispin 3 2,430 Último mensaje 12 Febrero 2005, 05:23
por Paisterist
File Inclusion
Bugs y Exploits
failurelogin 1 1,748 Último mensaje 14 Agosto 2007, 13:09
por yeikos
Inclusion de codigo php
Nivel Web
50l3r 7 2,049 Último mensaje 6 Abril 2010, 03:54
por Castg!
Inclusión mutua de clases C++
Programación C/C++
darkvidhack 1 366 Último mensaje 26 Diciembre 2011, 17:30
por darkvidhack
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines