2010-09-17 29 views
0

je la structure d'arborescence suivante:question des fichiers, y compris avec des chemins relatifs sur un système linux

/index.php 
/code/inc/variables.php 
/code/inc/config.php 

index.php est le fichier qui est appelé.

Sur notre système de développement: /code/inc/variables.php, quand j'ai la ligne:

require_once("./code/inc/config.php"); 

il ne marche pas le travail et quand j'ai:

include_once('config.php'); 

il fonctionne . Le casse-tête est que le premier fonctionne sur notre système de développement et le second sur notre système de production. Et il n'y a aucune différence dans la structure arborescente sur l'un ou l'autre des deux systèmes (les deux fonctionnent sous Linux, différentes versions peut-être).

+1

Vérifiez la valeur de la directive include_path dans votre fichier php.ini car les références de fichiers relatives dans includes sont relatives aux entrées de ce fichier, pas au répertoire du script courant. –

Répondre

1

Si vous appelez require_once dans le fichier DOCUMENT_ROOT/public_html/x.php:

require_once("./code/inc/config.php"); 

qui est Meen ce qu'il est recherché pour le fichier

DOCUMENT_ROOT/public_html/code/inc/config .php

si vous appelez même require_once DOCUMENT_ROOT/public_html/code/inc/variables.php:

il sera à la recherche de fichier:

DOCUMENT_ROOT/public_html/code/inc/code/inc/config.php

et bien sûr, il échoue.

Vous pouvez utiliser la requête comme ceci:

require_once($_SERVER['DOCUMENT_ROOT'] . "/code/inc/config.php"); 

et cela fonctionnera dans tous vos fichiers correctement.