__FILE__
es un magic constant que contiene la ruta completa al archivo que está ejecutando. Si se encuentra dentro de una inclusión, su ruta será el contenido de __FILE__
.
Así que con esta configuración:
/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";
Obtiene esta salida:
/folder/random
/folder/random
-------
/folder/random
/folder/random/bar
Así getcwd()
devuelve el directorio donde se inició la ejecución, mientras que es dirname(__FILE__)
archivo dependiente.
En mi servidor web, getcwd()
devuelve la ubicación del archivo que originalmente comenzó a ejecutarse. El uso de la CLI es igual a lo que obtendría si ejecutara pwd
.Esto es apoyado por el documentation of the CLI SAPI y un comentario sobre la getcwd
página del manual:.
la CLI SAPI - al contrario de otros SAPIs - no cambia automáticamente el directorio de trabajo actual a la que el guión comenzado reside en
Así como:
[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
por supuesto, consulta el manual en http://php.net/manual/en/function.getcwd.php
ACTUALIZACIÓN: Desde PHP 5.3.0 también puede usar la constante mágica __DIR__
que es equivalente a dirname(__FILE__)
.
No olvide que 'dirname (__ FILE __)' es lo mismo que '__DIR__' –