get_included_files

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

get_included_filesinclude または require で読み込まれたファイルの名前を配列として返す

説明

get_included_files(): array

この関数は、 includeinclude_oncerequire あるいは require_once によりスクリプトにロードされたすべてのファイルの名前を取得します。

パラメータ

この関数にはパラメータはありません。

戻り値

すべてのファイル名を含む配列を返します。

最初にコールされたスクリプトは "include されたファイル" という扱いに なります。そのため、 include やその仲間たちにより 読み込まれたファイルの一覧に含めて表示されます。

複数回読み込まれているファイルも、 返される配列には一度しかあらわれません。

例1 get_included_files() の例

<?php
// このファイルは 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";
}

?>

上の例の出力は以下となります。

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

参考

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:<?phpfunction 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.phpAs 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