Заголовки не будут работать (это заголовки, поэтому они приходят сначала )
Я не знаю ни одного способа закрыть http-соединение без завершения сценария, хотя, полагаю, есть какой-то неясный способ сделать это.
Сообщение о том, что вы хотите сделать после выполнения запроса, поможет нам дать лучшие предложения.
Но в общем, я бы подумал об одном из следующих:
1) Выполнить некоторый простой сценарий командной строки (с использованием exec ()), который выглядит следующим образом:
#!/bin/sh
php myscript.php <arg1> <arg2> .. <argN> &
Затем начните это с вашего http-скрипта, например:
<?PHP
exec('/path/to/my/script.sh');
?>
Или:
2) Напишите другую программу (возможно, постоянно работающий демон или просто какой-нибудь скрипт, который выполняется очень часто) и выясните, как ваш код в запросе может передать ему инструкции. Вы можете иметь таблицу базы данных, которая работает с очередями, или попытаться заставить ее работать с каким-то плоским файлом. Вы также можете сделать так, чтобы ваш веб-скрипт вызывал какую-то команду из командной строки, которая заставляет ваш скрипт вне запроса ставить в очередь какую-то работу.
В конце концов, вы не хотите, чтобы ваш скрипт продолжал выполняться после http-запроса. Предполагая, что вы используете mod_php, это означает, что вы будете связывать процесс apache до тех пор, пока скрипт не завершится.