$0 bana dondugunde yolunu verir: yürütme bir kütüphane içeren bir komut dosyası, ben, kütüphaneye arayan senaryoyu whithin Perl ben env kullanıyorum bulmak whant zaman. Kütüphanede bana kütüphane yolunu değil Arayan script yolu verir böylece PHP __FILE__, bana geçerli komut verir.
perl belgesinden: $0 Contains the name of the file containing the Perl script being executed.
Ben o) (debug_backtrace kullanılarak yapılabilir düşünüyorum, ancak başka daha iyi / daha kısa bir yöntem var mı?
EDIT: (ekledi örnek kod)
Dosya: index.php
<?php
require 'locallib.php';
echo 'in original script = '.__FILE__.'<br />';
?>
Dosya: locallib.php
<?php
require "lib.php";
echo 'in library "'.__FILE__.'"<br />';
?>
Dosya: lib.php
<?php
if( $_SERVER['SCRIPT_FILENAME'] != '/var/www/html/index.php')
{
echo "Not allowed";exit;
} else
{
echo 'in library "'.__FILE__.'"<br />';
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
}
?>