__FILE__
est un magic constant contenant le chemin complet vers le fichier que vous exécutez. Si vous êtes dans un include, son chemin sera le contenu de __FILE__
.
Donc, avec cette configuration:
/folder/random/foo.php
<?php
echo getcwd() . "\n";
echo dirname(__FILE__) . "\n" ;
echo "-------\n";
include 'bar/bar.php';
/folder/random/bar/bar.php
<?php
echo getcwd() . "\n";
echo dirname(__FILE__) . "\n";
Vous obtenez cette sortie:
/folder/random
/folder/random
-------
/folder/random
/folder/random/bar
Alors getcwd()
retourne le répertoire où vous avez commencé l'exécution, alors que dirname(__FILE__)
est dépendant du fichier.
Sur mon serveur web, getcwd()
retourne l'emplacement du fichier qui a commencé à l'origine d'exécution. En utilisant le CLI, il est égal à ce que vous obtiendriez si vous exécutez pwd
.Ceci est soutenu par le documentation of the CLI SAPI et un commentaire sur la page de manuel getcwd
:.
le CLI SAPI ne - contrairement à d'autres SAPI - change pas automatiquement le répertoire de travail courant à celui du script commencé réside dans
donc, comme:
[email protected] /home/thom $ echo "<?php echo getcwd() . '\n' ?>" >> test.php
[email protected] /home/thom $ php test.php
/home/thom
[email protected] /home/thom $ cd ..
[email protected] /home $ php thom/test.php
/home
Bien sûr, vous pouvez aussi consulter le manuel à http://php.net/manual/en/function.getcwd.php
MISE À JOUR: Depuis PHP 5.3.0, vous pouvez également utiliser la constante magique __DIR__
qui est équivalente à dirname(__FILE__)
.
N'oubliez pas que 'dirname (__ FILE __)' est identique à '__DIR__' –