Re: require
| From: | Andrés Sáyago | Date: | Fri, 21 May 2004 16:49:48 +0000 |
| Subject: | Re: require | ||
| References: | 1 2 3 | Groups: | php.general.es |
| Request: | Send a blank email to general-es+get-48757@lists.php.net to get a copy of this message | ||
Hola, ....
Hmm, desde un punto lógico y sin siquiera leer documentación de PHP, es
ilógico pensar en que si yo uso un include para incluir un archivo
mediante un URL, éste se vaya a incluir en mi página PHP como si lo
hubiese hecho dentro del mismo server, con un archivo local y usando una
ruta del sistema de archivos del server.
No es cuestión de que "no es una buena idéa hacer eso con require o
include, por una cuestión de compatibilidad", es que sencillamente si yo
incluyo un archivo que está en otro server, lo que ha de incluírseme en
mi página es el resultado de la ejecución de la página que estoy
incluyendo, más no el código PHP que contiene la página.
Porqué? Muy sencillo, al hacer la petición del archivo con un
"http://..." lo que estoy haciendo es pidiéndole al
programa que sirve
las páginas web del otro servidor que me entregue dicha page (digamos
que sea un PHP). Obviamente que el servidor en mención NO me va a
entregar el código PHP (así haga el llamado desde un script de PHP en mi
server), si no el resultado de haber ejecutado ese código en el servidor
de él. Si eso se pudiera, pues habríamos encontrado la forma de robar
claves de la forma más obvia y elemental con PHP.
En cuanto a fopen y lo otro, pues no tiene aplicación para la pregunta
inicial. Lo que quería dejar claro es que si se usa un include con un
URL, se regresa es el resultado de la ejecución de esa page que se
pidió, más no el código fuente. Si se hace usando el sistema de ficheros
local, sí se incuirá el código PHP y no el resultado de la ejecución de
dicho código, pues éste estará a cargo de nuestro servidor web, cuando
interprete nuestra page.
Nota: No sirve incluir una page usando URL así esté en nuestro propio
server, por que, de nuevo, lo que incluiremos será lo que nuestro propio
servidor web genere luego de haber ejecutado esa page que le pedimos.
Nota2: Otra aclaración... si lo que se quiere es incluir una page que no
tenga código PHP embebido, pues ahí si tendría sentido usar el include
con URL, pues lo que se incluye es texto plano, no sentencias a
interpretarse.
Con respecto a: http://ar2.php.net/manual/es/function.include.php,
antes del ejemplo 11-5, y antes del "Aviso", ese último párrafo confirma
claramente lo que acabo de decir (que encontré luego de recibir el
mensaje donde se contradecía mi explicación):
"Esto no es lo mismo que incluir un fichero y que este fichero herede
las variables del fichero padre; el script es ejecutado en el servidor
remoto y el resultado es incluido en en script local. "
Éxitos y felicidades!
Andrés Sayago
"Pablo E. Siciliano" wrote:
>
> Eso no es así, por lo menos en PHP (Y por lo que se, en asp tampoco, donde
> lo que se hace es un include del tipo SSI, que puede trabajar con ambos
> tipos de direcciones)
>
> fopen puede desde hace rato usarse para simular un get, y es lo que el
> manual sugiere para trabajar con archivos remotos.
> http://ar2.php.net/manual/es/features.remote-files.php
>
> En cuanto a include y require, fijate en la documentación
> http://ar2.php.net/manual/es/function.include.php , en el
> ejemplo 11-5
> Esto no siempre fué, pero ahora se puede.
>
> A mi entender, no es una buena idéa hacer eso con require o include, por
> una cuestión de compatibilidad (Siempre podés toparte con una versión de PHP
> que no soporte estas cosas y por variados motivos no poder cambiarla), y
> porque tenés que dejar visibles tus bibliotecas en la web, pero eso no
> implica que PHP no soporte este tipo de inclusiones.
>
> ----- Original Message -----
> From: "Andrés Sáyago" <asath@colombialinux.org>
> To: "Igor" <igor@dualia.es>
> Cc: "'phpes'" <php-es@lists.php.net>
> Sent: Friday, May 21, 2004 11:38 AM
> Subject: Re: [PHP-ES] require
>
> > No precisamente que estés usando una relación relaiva, la explicación es
> > que los requiere, include, fopen y demás funciones del sistema de
> > archivos, en general de todos los scripts que se ejecutan en los
> > servidores (PHP, Jsp, Asp, etc.) deben llevar como ruta una dirección
> > del sistema de archivos en el servidor, no en la web.
>
> --
> PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php