includes chemin relatif autre que include_path

includes chemin relatif autre que include_path - PHP - Programmation

Marsh Posté le 26-06-2007 à 11:47:44    

Bonjour à tous,  
 
J'ai une page PHP (appelons-là page_1.php) qui en include une autre (page_2.php) qui en include une troisième (page_3.php).
 
leur position dans les répertoires est la suivante :  
 
/www/page_1.php
/www/includes/page_2.php
/www/lang/page_3.php
 
J'aime utiliser les chemins relatifs pour les inclusions, donc dans page_2.php je voudrais bien avoir un truc du genre  

Code :
  1. include ("../lang/page_3.php" );


 
Le problème est que comme page_2.php elle-même est include dans page_1, c'est là que le chemin relatif commence et donc pour ma page_3 je dois en vérité écrire :  

Code :
  1. include ("./lang/page_3.php" );


 
J'ai trouvé une manière de contourner le problème : la directive include_path dans mon php.ini. J'y définis mes répertoires /includes et /lang en absolu et ça marche; j'ai le résultat escompté mais je n'aime pas beaucoup cette solution car elle nuit à la portabilité et la réusabilité du site (si par exemple je veux créer une copie dans /www/test, je dois aller redéfinir tous mes chemins absolus dans php.ini).
 
Je voulais donc savoir s'il existait une manière de faire comprendre à include() ou require() d'aller voir la page à inclure (page_3.php) sur le chemin relatif à la page elle-même (page_2.php) et pas à la page (page_1.php) qui inclut cette page (page_2.php), si vous me suivez :)
 

Reply

Marsh Posté le 26-06-2007 à 11:47:44   

Reply

Marsh Posté le 26-06-2007 à 12:10:07    

Jpense que si tu te débrouilles un peu avec quelques variables (genre un $dir dans chaque page) tu pourras te débrouiller pour qu'un include($dir ."page_x.php" ); marche. J'essaie de réfléchir à ça, mais jpense que c'est une bonne voie :)


---------------
.:: Kmeleon ::.
Reply

Marsh Posté le 26-06-2007 à 13:16:52    

Merci pour ta proposition, j'avais même pas pensé à ça ;)
 
J'attends cependant de voir si d'autres ont d'autres idées .. :)

Reply

Marsh Posté le 26-06-2007 à 13:25:02    

Et si tu configures apache pour tapper dans le répertoire "/www/test/", du coups tu peux rester sur des chemins absolus :/


---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 26-06-2007 à 13:30:09    

VenerZen a écrit :

Et si tu configures apache pour tapper dans le répertoire "/www/test/", du coups tu peux rester sur des chemins absolus :/


 
Ah mais ça je ne peux pas faire ... si je fais une copie du site en /www/test, le site normal doit rester accessible par /www/ ...

Reply

Marsh Posté le 26-06-2007 à 15:52:33    

ben pourquoi tu ne crées pas deux vhost ?un de dev/test et un de prod. Ca t'évite de passer par des liens relatif et ça t'évite un bordel monstrueux si ton site s'aggrandie..
Les include_path sont fait pour ça :spamafote:


---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed