parent.php:Php - ottenere il nome del genitore-script
require_once 'child.php';
child.php:
echo __FILE__;
Mostrerà '.../child.php'
Come può ottengo '.../parent.php'
parent.php:Php - ottenere il nome del genitore-script
require_once 'child.php';
child.php:
echo __FILE__;
Mostrerà '.../child.php'
Come può ottengo '.../parent.php'
print $_SERVER["SCRIPT_FILENAME"];
Non penso che tu possa farlo: il 01 La costante magicaindica in quale file è scritta; e questo è tutto.
Se si desidera sapere quale script PHP è stato inizialmente chiamato (quale URL è stato richiesto, ad esempio), si potrebbe avere più fortuna guardando il superglobale $_SERVER
: contiene molte informazioni, tra cui alcune che ti aiuteranno (come SCRIPT_FILENAME
o ;-) ;-)
La risposta scelta funziona solo in ambienti che impostano variabili server e in particolare non funzioneranno da uno script CLI. Inoltre, non determina il genitore, ma solo il file di script più in alto.
Si può fare quasi la stessa cosa da uno script CLI guardando $ argv [0], ma questo non fornisce il percorso completo.
La soluzione ambiente indipendente utilizza debug_backtrace:
function get_topmost_script() {
$backtrace = debug_backtrace(
defined("DEBUG_BACKTRACE_IGNORE_ARGS")
? DEBUG_BACKTRACE_IGNORE_ARGS
: FALSE);
$top_frame = array_pop($backtrace);
return $top_frame['file'];
}
dritto alla soluzione:
Script principale:
echo $_SERVER['SCRIPT_FILENAME'];
Bambino Script (file incluso nello script genitore):
echo __FILE__;
Fare un file chiamato "parent.php" con un contenuto:
include('child.php');
Fai un file chiamato "child.php" con un contenuto:
echo "My Parent is at: " . $_SERVER['SCRIPT_FILENAME'] . "<br>";
echo "I'm at: " . __FILE__;
Si ottiene l'idea ...
Devi usare basename($_SERVER["SCRIPT_FILENAME"])
o, se ti piace solo lo script nam, puoi usare basename($_SERVER["SCRIPT_FILENAME"], '.php')
.
Questa non è la risposta corretta ... – Neo
Funziona solo nel contesto di un contenitore Web. –