Como fazer o PHP continuar após a página carregar
A mágica toda está na função ignore_user_abort(), basta chamá-la com o primeiro parâmetro true e a página continuará processando mesmo após o usuário cancelar o carregamento (botão Stop do navegador, geralmente). Também é possível fazer o PHP parar em um determinado momento o carregamento da página e continuar em background, mas é um pouco mais engenhoso, em no mínimo oito linhas:
-
ob_start();
//Pra segurar o buffer de saída
-
-
echo "Minha página";
//Aqui vai o que será exibido no navegador
-
header("Connection: close");
//Pra dizer ao navegador fechar a conexão (ignora o Keep-Alive)
-
-
header("Content-length: $len");
//Pra informar ao navegador o tamanho do buffer
-
ob_end_flush();flush
();
//Pra enviar o buffer de saída de uma vez
-
mail(‘example@example.com’,
‘Teste’,
‘Teste’);
//Qualquer processamento em background
Mais informações aqui (em inglês).