2012-01-31 19 views
7

Estoy tratando de encontrar una manera de hacer que la ruta include_once(); comience desde el directorio inicial y luego encuentre la ruta, p. en lugar de ../../../path/to/file tendría /path/to/file. Si yo hago eso /path/to/file dice que no existe el fichero o directorio, aquí está mi código directaphp include_once ruta

<?php 
include_once("/assets/page_assets.php"); 
?> 
+2

'start camino desde el comienzo de la directory' raíz del servidor web? '/ ruta/a/archivo' es la ruta desde la raíz del sistema de archivos! – Cheery

Respuesta

12

Si tiene un servidor Apache

<?php 
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php"); 
?> 

"/assets/page_assets.php" significa from the root of the disk, no desde la carpeta raíz de la servidor. Si está hablando de algún otro beginning directory, defina la ruta física (ruta en el sistema de archivos del servidor, no la ruta web) como una constante/variable separada y anteponga a la ruta incluida como se muestra arriba.

0

Comience su guión con chdir($_SERVER['DOCUMENT_ROOT']);

Ahora se puede llamar include("path/to/file.php"); y va a empezar a buscar desde la web raíz.

1

Para hacer esto, debe usar la ruta desde la raíz. En algunos casos, esto podría parecerse al /var/www/mysite.com/assets/page_assets.php. Una forma de encontrar esa ruta es usar __FILE__ (Eso es 2 guiones bajos tanto en frente como detrás). Si repite eso desde un archivo, le mostrará la ruta completa. Debería poder usar eso para establecer la ruta completa correcta.

2

Puede especificar ruta de inclusión explícita:

<?php ini_set('include_path',ini_get('include_path').':../../../:'); ?> 

Pero como alegre menciona en el comentario, usted debe incluir su archivo sin barra inicial:

<?php 
include_once("assets/page_assets.php"); 
?> 
Cuestiones relacionadas