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.get_included_files
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
get_included_files
Референца за `function.get-included-files.php` со подобрена типографија и навигација.
get_included_files
(PHP 4, PHP 5, PHP 7, PHP 8)
get_included_files — Враќа низа со имињата на вклучените или потребните датотеки
= NULL
Враќа низа со имињата на вклучените или бараните датотеки include, include_once, require or require_once.
Параметри
Оваа функција нема параметри.
Вратени вредности
Ги добива имињата на сите датотеки што се вклучени со користење на
Враќа низа од имињата на сите датотеки. include Првично повиканиот скрипт се смета за „вклучена датотека“, така што ќе биде наведен заедно со датотеките на кои се однесуваат
и семејството.
Примери
Пример #1 get_included_files() example
<?php
// This file is 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";
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
/path/to/abc.php /path/to/test1.php /path/to/test2.php /path/to/test3.php /path/to/test4.php
Види Исто така
- include Датотеките што се вклучуваат или бараат повеќе пати се појавуваат само еднаш во вратената низа.
- include_once - include
- require - include_once
- require_once - require
- get_required_files() - require_once
Белешки од корисници 4 белешки
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'.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.This is a great way to emulate Python's '__name__ = "__main__"'
<?php
if(get_included_files()[0] === __FILE__) doStuff();
?>