En cualquier archivo PHP, también referido como script, está disponible la constante __FILE__. Esta es una de las constantes predefinidas de PHP y su valor es igual a la ruta absoluta del archivo dónde se utiliza, incluyendo el nombre y extensión del archivo. Por tanto, utilizando __FILE__ podemos conocer fácilmente el archivo PHP actualmente en ejecución.

Por ejemplo, imagina que tienes un archivo PHP localizado en /home//public_html/application/unscript.php (ruta absoluta en el servidor). Podrías acceder a esta ruta utilizando __FILE__ del siguiente modo:
<?php
// Imprime /home//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//public_html/application/script1.php y tiene este contenido:
<?php
include( 'includes/script2.php' );
Y la ruta del script 2 es /home//public_html/application/includes/script2.php con este contenido:
<?php
// Imprime /home//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.
Compartir

Mi nombre es Alexander fundador y CEO, y me gusta llamarme un Geek. Amo la informática, tecnología y todo lo que está relacionado con ella. Inicié este sitio con la intención de compartir conocimientos como cursos en línea, tutoriales y videotutoriales. Estoy muy entusiasmado con la información que he descubierto y compartido hasta el momento. La verdad es que lo he hecho con el mayor de los gustos. Así es, soy un Geek con una visión para compartir conocimiento. Leer mas... 6c435j