Puede utilizar el almacenamiento en búfer de salida como
<?php
ob_start();
echo "Some text you want to echo on page!!";
header("Location:somepage.php");
ob_end_flush();
?>
El problema es que no podemos enviar la cabecera después de que comience a enviar la salida. Para resolver esto, almacenamos la salida. La función ob_start activa el almacenamiento en búfer de salida. Mientras que el almacenamiento en búfer de salida está activo, no se envía salida del script (que no sean los encabezados), sino que el resultado se almacena en un búfer interno. Por lo tanto, la salida de eco se almacenará en el búfer. A continuación enviamos el encabezado sin ningún problema, ya que aún no hemos escupido ningún resultado. Finalmente, llamamos a ob_end_flush para vaciar el contenido del buffer interno y detener el buffer de salida.