elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  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 4,130 veces)
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.912



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: 278

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: 1.125



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
  1. <?php
  2.  
  3. if(1):
  4. require('a.php');
  5. endif;
  6.  
  7. echo 'Yoya';
  8. ?>
  9.  

a.php
Código
  1. <?php
  2.  
  3. echo "Hola mundo";
  4.  
  5. ?>

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
  1. <?php
  2.  
  3. if(1 == 2):
  4. require('a.php');
  5. endif;
  6.  
  7. echo 'Yoya';
  8. ?>
  9.  

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



En línea

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
Colaborador
***
Desconectado Desconectado

Mensajes: 1.912



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
  1. <?php
  2. if (require("b.php")) {
  3. echo "Ok";
  4. }
  5. ?>

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

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
Nivel Web
krispin 3 3,637 Último mensaje 12 Febrero 2005, 05:23
por Paisterist
Duda File inclusion
Nivel Web
.:UND3R:. 2 2,011 Último mensaje 20 Agosto 2008, 18:12
por Azielito
Local File Inclusion ???
Nivel Web
APOKLIPTICO 8 4,125 Último mensaje 23 Julio 2009, 19:08
por benny_loppa
Inclusion de codigo php
Nivel Web
50l3r 7 3,232 Último mensaje 6 Abril 2010, 03:54
por Castg!
Inclusión mutua de clases C++
Programación C/C++
darkvidhack 1 1,738 Último mensaje 26 Diciembre 2011, 17:30
por darkvidhack
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines