strip_tags remove inicio fin etiquetas ejemplos ejemplo php

remove - La forma más rápida de determinar dónde termina el script PHP



strip_tags php ejemplo (9)

Agregue esto al principio del archivo:

function shutdown() { print_r(debug_backtrace()); } register_shutdown_function(''shutdown'');

Ver register_ shutdown_function ()

Supongamos que tiene un gran proyecto de PHP y, de repente, cuando intenta ejecutarlo, termina con una página en blanco. La secuencia de comandos finaliza y desea encontrar exactamente dónde está con el menor esfuerzo posible.

¿Hay alguna herramienta / programa / comando / IDE que pueda, en la terminación del script PHP, indicarle la ubicación de una salida de script?

Nota: No puedo marcar mi propia publicación como "respuesta aceptada", así que mira la parte inferior para ver mi solución. Si se te ocurre una solución mejor, marcaré tu publicación como la respuesta.


No te olvides de grep para "salir" también.


Puede utilizar un depurador interactivo para recorrer el código hasta que llegue al punto de salida. Aparte de eso, creo que estás ansioso por grep''ing el código para exit|die .


xdebug tiene una bonita función de rastreo que te permitirá ver todo el seguimiento de la ejecución de tu aplicación php y debería darte una pista sobre dónde está tu salida.

pero para la solución rápida y sucia, un grep / find como se menciona arriba lo hará correctamente.


grep -n die filename


Asegúrese de que los errores se muestren en su entorno de desarrollo (no en producción).


Con algo de inspiración de la respuesta no operativa pero aún en la dirección correcta de RoBorg, utilicé el siguiente código al principio:

function shutdown() { global $dbg_stack_a; print_r($dbg_stack_a); } register_shutdown_function(''shutdown'');

Y luego hice un punto de corte condicional global (global = punto de corte se evalúa en cada fila), explotando el hecho de que puede ejecutar code a través de eval (), con la siguiente "condición":

eval('' global $dbg_stack_a, $dbg_stack_b, $dbg_stack_c; $dbg_stack_a = $dbg_stack_b; $dbg_stack_b = $dbg_stack_c; $dbg_stack_c = debug_backtrace(); return false; '')

Probablemente no sea rápido, pero el truco! Usando esto, pude determinar el archivo exacto y la ubicación de la línea que provocó die (). (Este ejemplo funciona en NuSphere).


También verifique los errores___logs para errores " memory_limit " en el error_log de Apache.

Límite de memoria> = 10M Advertencia: (Establezca esto en 10M o más en su archivo php.ini)

En mi experiencia, los scripts de repente terminan sin previo aviso o aviso cuando esto sucede.


Uso el siguiente código y no necesito un entorno de depuración especial. Tenga en cuenta que esto puede llevar mucho tiempo; puedes establecer que los ticks cuenten más alto, eso hace que sea más rápido, pero borroso.

function shutdown_find_exit() { var_dump($GLOBALS[''dbg_stack'']); } register_shutdown_function(''shutdown_find_exit''); function write_dbg_stack() { $GLOBALS[''dbg_stack''] = debug_backtrace(); } register_tick_function(''write_dbg_stack''); declare(ticks=1);