Tengo un método log() y quiero registrar el nombre del script que lo llamó. ¿Cómo es eso posible en PHP?¿Cómo puedo obtener el nombre del script que llamó a una función?
Respuesta
Dependiendo del entorno de la llamada, usted debe echar un vistazo a debug_backtrace y $_SERVER['PHP_SELF']
debug_backtrace()
le dará un seguimiento de pila de los includes y llamadas a funciones hasta ahora, y $_SERVER['PHP_SELF']
le dirá el script que se está ejecutando, que es más fácil y podría funcionar igual de bien para lo que quieres. $_SERVER['PHP_SELF']
casi siempre será la secuencia de comandos que se llamó desde el navegador, por ejemplo, si tenía blah.com/admin.php
y blah.com/articles.php
que ambos llamaron /pages.php
para obtener una lista de las páginas guardadas en un blog o algo, y algo salió mal - el registro le diría si admin.php
o articles.php
llamaban al script. Pero si pages.php
incluía functions.php
que incluía libs.php
y fallaba libsphp, y deseaba saber que functions.php
lo incluía, esto no funcionaría; el registro aún mostraría la secuencia de comandos que inició incluyendo (admin.php
o articles.php
). En este caso, usaría debug_backtrace()
.
Gracias por 'debug_backtrace()'. ¡Es asombroso! – neoDev
Puede echar un vistazo a la función debug_backtrace
: en su salida, usted debe encontrar lo que busca ;-)
Puede echar un vistazo a this answer me pusieron un par de días, para obtener más informaciones y un ejemplo.
¡mira todas las 'informaciones' en ese enlace! ¡Estoy extrayendo información! lol – pythonian29033
Eche un vistazo a debug_baktrace.
$backtrace = debug_backtrace();
print_r($backtrace[1]);
Uso debug_backtrace() para obtener una matriz asociativa que contiene la pila de llamadas completa y examinar la matriz para tirar de los datos que le interesan de ella.
Además de las respuestas ya dadas, una respuesta de muy baja tecnología sería o anexar _ _ ARCHIVO _ _ o basename() a una cadena que se está registrando. (tuvo que agregar espacios para doblar el guión bajo en FILE para que se muestre)
- 1. Obtener ID del elemento que llamó a una función
- 2. ¿Cómo obtener el módulo desde el que se llamó a la función en ejecución?
- 3. Jquery: Seleccione el elemento que llamó a la función
- 4. Encontrar el nombre de archivo que llamó mi función en PHP
- 5. ¿Cómo puedo obtener el nombre del usuario que ejecuta mi script de Perl?
- 6. ¿Cómo puedo averiguar el nombre de la acción del controlador que llamó a mi vista en MVC3?
- 7. Cómo obtener el nombre del alias que invocó el script bash
- 8. ¿Cómo puedo saber quién llamó a SendMessage?
- 9. ¿Cómo puedo obtener el nombre del directorio actual en Javascript?
- 10. ¿Cómo puedo obtener el nombre de la función dentro de una función de JavaScript?
- 11. Obtener el nombre de una función decorada?
- 12. ¿Cómo obtener el ID del proceso del nombre del proceso?
- 13. Perfilado en Python: ¿Quién llamó a la función?
- 14. Cómo obtener el nombre del procedimiento/función actual en Delphi (como una cadena)
- 15. Cómo contar la cantidad de veces que se llamó a una función, FP way
- 16. ¿Cómo puedo obtener el nombre del paquete en android?
- 17. Obteniendo el nombre del script en Powershell
- 18. ¿Cómo obtener el nombre de una función en Go?
- 19. ¿Cómo obtener el nombre completo del tipo?
- 20. ¿Cómo puedo obtener el nombre del elemento con jQuery?
- 21. iphone ¿cómo puedo obtener el nombre del mes a partir del número de mes?
- 22. Cómo obtener el nombre del método que causó la excepción
- 23. ¿Cómo puedo obtener el nombre del archivo de registro a través del código?
- 24. ¿Cómo obtener el nombre del archivo en una carpeta?
- 25. Cómo obtener el nombre del ejecutable de una ventana
- 26. ¿Cómo puedo obtener el nombre de una función de llamada dentro de un módulo en Mathematica?
- 27. Ubicación del gerente llamó una sola vez
- 28. android, cómo obtener el nombre del paquete?
- 29. ¿Cómo puedo obtener el primer nombre (o nombre completo) del usuario del teléfono?
- 30. ¿Cómo saber quién llamó a un método?
Duplicado de http://stackoverflow.com/questions/1935867/finding-out-the-filename-that-called-my-function-in -php/1935902 – Gordon