PHP 8.5.0 RC4 available for testing

get_included_files

(PHP 4, PHP 5, PHP 7, PHP 8)

get_included_filesDevuelve un array con los nombres de los ficheros que son incluidos en un script

Descripción

get_included_files(): array

Devuelve un array que contiene los nombres de todos los ficheros que han sido añadidos al script con las funciones include, include_once, require o require_once.

Parámetros

Esta función no contiene ningún parámetro.

Valores devueltos

Devuelve un array que contiene los nombres de todos los ficheros.

El script en curso es considerado como fichero incluido, por lo que será listado junto con los otros ficheros a los que se hace referencia con include y las funciones similares.

Los ficheros incluidos o requeridos varias veces solo se muestran una vez en el array devuelto.

Ejemplos

Ejemplo #1 Ejemplo con get_included_files()

<?php
// Este fichero es abc.php

include 'test1.php';
include_once
'test2.php';
require
'test3.php';
require_once
'test4.php';

$included_files = get_included_files();

foreach (
$included_files as $filename) {
echo
"$filename\n";
}

?>

El ejemplo anterior mostrará:

/path/to/abc.php
/path/to/test1.php
/path/to/test2.php
/path/to/test3.php
/path/to/test4.php

Ver también

add a note

User Contributed Notes 4 notes

up
14
yarco dot w at gmail dot com
18 years ago
If you have a MAIN php script which you don't want to be included by other scripts, you could use this function. For example:

main.php:
<?php
function blockit()
{
$buf = get_included_files();
return
$buf[0] != __FILE__;
}

blockit() and exit("You can not include a MAIN file as a part of your script.");

print
"OK";
?>

So other script couldn't include main.php to modify its internal global vars.
up
6
D
5 years ago
It's perhaps not clear from the existing docs that the returned list contains nested include files as well.

That is, if A.php includes B.php, and B.php includes C.php, the result returned when calling get_included_files() from inside A.php WILL contain 'C.php'.
up
3
RPaseur at NationalPres dot org
19 years ago
As is often the case, YMMV. I tried the __FILE__ and SCRIPT_FILENAME comparison and found this:

SCRIPT_FILENAME: /var/www/cgi-bin/php441
__FILE__: /raid/home/natpresch/natpresch/RAY_included.php

As an alternative:

count(get_included_files());

Gives one when the script is standalone and always more than one when the script is included.
up
0
Aurelien Marchand
3 years ago
This is a great way to emulate Python's '__name__ = "__main__"'

<?php
if(get_included_files()[0] === __FILE__) doStuff();
?>
To Top