Ho un metodo log() e voglio registrare il nome dello script che lo ha chiamato. Com'è possibile in PHP?Come posso ottenere il nome dello script che ha chiamato una funzione?
risposta
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()
.
Grazie per 'debug_backtrace()'. È fantastico! – neoDev
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.
guarda tutte le "informazioni" in quel link! Sto scavando informazioni! lol – pythonian29033
Dai uno sguardo allo debug_baktrace.
$backtrace = debug_backtrace();
print_r($backtrace[1]);
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.
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)
- 1. ottenere l'ID di un elemento che ha chiamato una funzione
- 2. Come ottenere il nome dello script Perl in esecuzione
- 3. Come posso ottenere il nome dello script che viene eseguito in bash?
- 4. Come ottenere il nome file dello script eseguito in NodeJS?
- 5. Ricerca del nome file che ha chiamato la mia funzione in PHP
- 6. Come ottenere il nome dell'alias che ha invocato lo script di bash
- 7. Come ottenere il nome di una funzione?
- 8. Acquisisci il nome dello script in PowerShell
- 9. Che cos'è questo modello chiamato Javascript? ha un nome?
- 10. Quando ha initWithCoder ottenere chiamato?
- 11. Ottenere il nome del computer Windows che esegue script Python?
- 12. Come determinare il nome della funzione dall'interno di una funzione
- 13. Come posso ottenere il percorso dello script attualmente in esecuzione con Javascript?
- 14. Come ottenere il nome dello stadio in una funzione AWS Lambda legata al gateway API
- 15. Come posso ottenere il nome della funzione all'interno di una funzione JavaScript?
- 16. Come posso ottenere il nome di una collectionviewcell selezionata?
- 17. Come posso ottenere l'utente che ha cancellato il file?
- 18. Come posso ottenere il nome dell'immagine dall'URL?
- 19. Previsto espressione, ha ottenuto fine dello script
- 20. Come ottenere il nome dello schema dall'oggetto schema in Tridion?
- 21. Ottieni il nome della funzione nello script KornShell
- 22. Come ottenere il nome della funzione corrente?
- 23. Come posso ottenere il nome della sessione dello schermo attualmente collegato?
- 24. Wordpress: capire quale hook ha chiamato una funzione
- 25. Posso comporre una funzione che ha un argomento implicito?
- 26. Come posso ottenere la directory dello script di PowerShell che eseguo?
- 27. Come ottenere il nome dello scenario in cetriolo java?
- 28. Php - ottenere il nome del genitore-script
- 29. Come ottenere il nome del file dello script R attualmente in esecuzione (per una facile e-mail automatica dei risultati)
- 30. Come posso ottenere il nome di una classe Ruby?
Duplicato di http://stackoverflow.com/questions/1935867/finding-out-the-filename-that-called-my-function-in -php/1935902 – Gordon