TransWikia.com

Ruta absoluta en require

Stack Overflow en español Asked by Pelukosa on December 14, 2021

Tengo una duda simple pero que no encuentro solución

Quiero obtener un archivo desde cualquier parte de mi aplicación, utilizando en include una ruta absoluta, he probado de varias maneras pero no lo consigo. De todas formas quería saber si existe alguna forma mejor que las que estoy utilizando

require "http://" . $_SERVER["HTTP_HOST"] . "/application/config.php";
// Esto devuelve: require(): http:// wrapper is disabled in the server configuration by allow_url_include=0
// Estoy trabajando en local por lo que me imagino que sólo tenga que configurar xampp para esto

require $_SERVER["HTTP_HOST"] . "/application/config.php";
// Así no me funciona tampoco

2 Answers

No deberías usar require en URLs, aunque sean del mismo dominio.

Por un lado te ahorras una llamada al servidor web innecesaria (incluida la latencia que agregas por ello).

Por otro lado, incluirás la interpretación del archivo PHP, y no su contenido. Por lo que esa probable que, simplemente, ese require no tenga absolutamente ningún efecto (la interpretación del PHP con solo código suele ser una página en blanco).

Si no quieres usar rutas relativas:

require __DIR__ ."/application/config.php";

Entonces deberías probar a agregar una variable de entorno en el servidor web Apache haciendo uso de mod_env con dicha ruta creando un archivo .htaccess en el directorio raíz de tu sitio web con este contenido (recuerda activar AllowOverride FileInfo si no lo has hecho ya):

SetEnv RUTA_BASE /var/www/html/

Y, posteriormente, puedes hacer uso de ella en todos los scripts PHP de la siguiente manera:

require getenv('RUTA_BASE') ."./application/config.php";

Ten en cuenta que si no está definida la variable de entorno, se accederá al subdirectorio application a partir del directorio de trabajo gracias al . del principio. Si no se pone entonces, por defecto, buscaría el directorio en el raíz del sistema.

Este método te permite tener disponible la ruta en todos los scripts PHP del sitio web de manera automática, sin tener que incluir ningún script de configuración ni nada por el estilo.

Answered by OscarGarcia on December 14, 2021

ya intentaste concatenando con comillas simples.

require "http://" . ´$_SERVER["HTTP_HOST"]´ . "/application/config.php";

Answered by Juan Pablo Solana on December 14, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP