ファイルが含まれているかどうかを確認したいだけの場合:
$_SERVER['SCRIPT_FILENAME']
最初に呼び出されたスクリプトのファイル名を常に返します。(例: "start.php")
定数__FILE__
は、それが使用されているスクリプトの実際のファイル名を常に返します (例: "library.inc.php")。
したがって、次のようなことができます。
if ($_SERVER['SCRIPT_FILENAME'] !== __FILE__) {
echo "script was included!";
}
else {
echo "script was called directly!";
}
ファイルが含まれている場所を区別したい場合:
$include_from = get_included_files();
if (count($include_from) > 1) {
$include_from = $include_from[count($include_from)-2];
}
else {
$include_from = $include_from[0];
}
switch ($include_from) {
case __FILE__:
// not included, called directly
break;
case "/path/to/scripta.php":
// do abc
break;
case "/path/to/scriptb.php":
// do xyz
break;
default:
// do other stuff
break;
}