
Por ejemplo, imagina que tienes un archivo PHP localizado en /home/usuario/public_html/application/unscript.php (ruta absoluta en el servidor). Podrías acceder a esta ruta utilizando __FILE__ del siguiente modo:
<?php
// Imprime /home/usuario/public_html/application/unscript.php
echo __FILE__;
Si en lugar de la ruta completa solo quieres el nombre del archivo podrías utilizar basename():echo basename( __FILE__ );
Es importante remarcar que __FILE__ contiene la ruta del archivo en el que se utiliza la constante, lo que implica que puede ser diferente al script originalmente llamado. Por ejemplo, imagina que tenemos un script PHP, llamésmole script 1, y en este script incluyes otro archivo PHP, llamésmole script 2, en el que accedemos a __FILE__. Si llamamos al script 1, obtendremos la ruta absoluta hacia el script 2. Supongamos que la ruta hacia el script 1 es /home/usuario/public_html/application/script1.php y tiene este contenido:<?php
include( 'includes/script2.php' );
Y la ruta del script 2 es /home/usuario/public_html/application/includes/script2.php con este contenido:<?php
// Imprime /home/usuario/public_html/application/includes/script2.php
echo __FILE__;
Si ejecutamos el script 1, se imprimirá la ruta hacia el script 2, pues es en script2.php dónde se accede a __FILE__ y no en script1.php.Esto se aplica a cualquier método de inclusión de scripts tales como include, require o su versiones include_once y require_once. Aunque en principio pueda parecer incoherente, si lo piensas no lo es: __FILE__ imprime la ruta del acrhivo que ese momento se está ejecutando.
Si lo que necesitas es saber si un script ha sido incluido por otro, la función get_included_files() puede serte de ayuda.
Comentarios