2009-12-27 9 views

risposta

11

seconda dell'ambiente di chiamata, si dovrebbe avere uno sguardo a debug_backtrace, e $_SERVER['PHP_SELF']

debug_backtrace() vi darà una traccia dello stack del include e della funzione chiamate finora, e $_SERVER['PHP_SELF'] vi dirà lo script in esecuzione, che è più facile e potrebbe funzionare altrettanto bene per quello che vuoi. $_SERVER['PHP_SELF'] sarà sempre lo script che è stato chiamato dal browser, ad esempio, se avevi blah.com/admin.php e blah.com/articles.php che entrambi hanno chiamato /pages.php per ottenere un elenco delle pagine salvate in un blog o qualcosa del genere e qualcosa è andato storto: il registro dirvi se admin.php o articles.php stava chiamando lo script. Tuttavia, se functions.php incluso libs.php e libs.php sono stati inclusi 8 e se si desidera sapere che functions.php è incluso, ciò non funzionerebbe: il registro mostrerebbe comunque lo script che ha iniziato l'inclusione (admin.php o articles.php). In questo caso useresti debug_backtrace().

+0

Grazie per 'debug_backtrace()'. È fantastico! – neoDev

3

Si può dare un'occhiata alla funzione debug_backtrace: nella sua uscita, si dovrebbe trovare quello che stai cercando ;-)

È possibile dare un'occhiata a this answer ho postato un paio di giorni fa, per più informazioni e un esempio.

+0

guarda tutte le "informazioni" in quel link! Sto scavando informazioni! lol – pythonian29033

2

Dai uno sguardo allo debug_baktrace.

$backtrace = debug_backtrace(); 
print_r($backtrace[1]); 
0

Usa debug_backtrace() per ottenere un array associativo contenente lo stack completo ed esaminare l'array di tirare i dettagli che ti interessa da esso.

0

In aggiunta alle risposte già fornite, una risposta molto bassa sarebbe o aggiungere _ _ FILE _ _ o basename() a una stringa che viene registrata. (è necessario aggiungere spazi per il doppio carattere di sottolineatura in FILE per visualizzarlo)

Problemi correlati