2010-11-28 26 views
0

Je construis une application Web (un forum), et il doit être intégré dans divers sites Web. L'idée est que l'emplacement du dossier stockant tous les fichiers est variable de sorte qu'un webmin puisse placer le forum où bon lui semble. J'ai, comme d'habitude, des fichiers PHP inclus.Chemins quantiques relatifs, absolus et sanglants en PHP!

Dites que j'ai global.php et envars.php et que vous voulez les inclure dans app_root.php. Les deux premiers sont stockés dans ./global/, par rapport à app_root.php. Maintenant, quand j'utilise ./ je reçois un fichier introuvable erreur. Si j'utilise juste global/ (pas de barre oblique pré-ajoutée), j'obtiens la même erreur.

J'ai vraiment besoin d'aide sur ce :-(

Les chemins doivent être par rapport à app_root.php et ne peut pas être absolu -.. L'abs chemin varie par installation

Merci pour la lecture,

James

+0

./ signifie dossier en cours, de sorte que ne marche pas vraiment aider. Pouvez-vous donner une idée de la structure de votre répertoire? manque de plus d'infos, tout ce que je pourrais conseiller est de rendre tout absolu, et peut-être stocker les chemins comme constantes si vous préférez, au lieu de coder en dur –

+0

@jon_darkstar - J'ai décidé de suivre cet itinéraire sur les recommandations de Mike B - merci. – Bojangles

+0

pas de problème. une chose - en fonction de la configuration et du framework de votre webroot (ou son absence) vous pourriez être capable de stocker des constantes dans quelque chose comme .htaccess, System.xml, Config.xml, etc. il pourrait être légèrement plus approprié de stocker des constantes de chemin ici dans la source régulière –

Répondre

3

Ce problème est résolu en créant normalement une constante avec un chemin absolu à l'application.

Quelque chose comme ceci dans votre fichier app_root.php

define('ROOT_PATH', dirname(__FILE__)); 

Ensuite, pour inclure d'autres fichiers il suffit d'utiliser quelque chose comme

include ROOT_PATH . '/dir/file.php'; 
+0

Merci. Je voulais faire en sorte qu'il y ait un champ de moins dans l'installateur. Pourtant, il n'est pas difficile de taper un chemin de fichier ;-P – Bojangles

+0

@Jam ce n'est pas "chemin de l'application", c'est le chemin vers le fichier réel. Le même chemin relatif, vue différente. Vous pouvez utiliser 'include 'dir/file.php';' aussi. Aucune différence. Ce n'est pas vraiment une solution –

+0

@Col. Shrapnel - Eh bien, ça marche très bien pour mon usage, alors je suis content pour l'instant. Si je trouve que ça cesse de fonctionner, je serai le premier à vous le faire savoir ... – Bojangles