2009-12-27 13 views

Respuesta

11

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().

+0

Gracias por 'debug_backtrace()'. ¡Es asombroso! – neoDev

3

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.

+0

¡mira todas las 'informaciones' en ese enlace! ¡Estoy extrayendo información! lol – pythonian29033

0

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.

0

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)

Cuestiones relacionadas