Deseo revisar y cambiar los encabezados antes de que se envíen y también poder detener el envío de cualquier contenido si los encabezados no son de mi agrado o si no se cumplen otras condiciones.
Cuando configuro una función para header_register_callback, los encabezados se pueden ajustar perfectamente. Sin embargo, cuando se usa una declaración die() en la devolución de llamada, no evita que se emita la declaración de activación. Esto parece ser solo un problema en php 8.0.0 - 8.0.10
Mirando la descripción de la devolución de llamada del registro de encabezado: "La devolución de llamada se ejecuta justo después de que PHP prepara todos los encabezados para enviar, y antes de que se envíe cualquier otra salida , creando una ventana para manipular los encabezados salientes antes de enviarlos".
¿Por qué sigue saliendo el ejemplo siguiente?
En php 8.0.0 - 8.0.10, una instrucción die evita que se emita el disparador: Trigger.
Opuesto a:
En php 8.0.0 - 8.0.10, una instrucción die evita que se emita el disparador:
<?php ob_start(); // make sure ob_level is set to 1 function callback() { echo "In php 8.0.0 - 8.0.10, a die statement does prevent the trigger from being outputted: "; die(); } header_register_callback("callback"); ob_end_clean(); echo "Trigger."; echo "Execution died before this echo statement.";
También hice un informe de error sobre esto en: https://bugs.php.net/bug.php?id=81431 Fragmento de ejemplo: https://3v4l.org/0NITj