Puis-je obtenir le chemin du fichier PHP appelé à l'origine dans un fichier inclus?
Question
Disons que nous avons index.php
et qu'il est stocké dans / home / user / public / www
et que index.php
appelle le class Foo- > bar ()
à partir du fichier inc / app / Foo.class.php
.
J'aimerais que la fonction de barre dans la classe Foo
récupère le chemin / home / user / public / www
dans cet exemple - je ne le fais pas. ne veux pas utiliser une variable globale, passer une variable, etc.
La solution
Cela ne vous permettrait-il pas d'obtenir plus facilement le répertoire du script en cours d'exécution?
$dir=dirname( Cela ne vous permettrait-il pas d'obtenir plus facilement le répertoire du script en cours d'exécution?
<*>SERVER["SCRIPT_FILENAME"])
Autres conseils
Vous pouvez utiliser debug_backtrace pour consulter le chemin d'appel et obtenir le fichier appelant cette fonction.
Un petit exemple:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
getcwd ()
obtient le répertoire de travail actuel
Il peut être modifié pour diverses raisons par des modules tiers, incluant ou même votre propre code en émettant un chdir ()
.
debug_backtrace ()
comme suggéré par Devon est la réponse que vous cherchez.
Je l'ai trouvé. getcwd ().