intestazioni non funziona (sono intestazioni, in modo da venire prima)
Io non conosco alcun modo per chiudere la connessione HTTP senza terminare la sceneggiatura, anche se suppongo c'è un modo oscuro per farlo.
Dicendoci cosa volete fare dopo che la richiesta è stata fatta ci aiuterebbe a dare suggerimenti migliori.
Ma in generale, mi piacerebbe pensare a una delle seguenti opzioni:
1) eseguire qualche semplice script da riga di comando (usando exec()) che assomiglia:
#!/bin/sh
php myscript.php <arg1> <arg2> .. <argN> &
Poi calcio che fuori dal vostro script http-bound come:
<?PHP
exec('/path/to/my/script.sh');
?>
Oppure:
2) Scrivi anothe r programma (probabilmente un daemon in esecuzione continua, o solo uno script che viene cronnato sempre così spesso), e capire come il codice in-richiesta può passargli le istruzioni. Si può avere una tabella di database in cui funzionano le code o provare a farlo funzionare con un file flat di qualche tipo. Si potrebbe anche fare in modo che lo script basato sul Web richiami un comando da riga di comando che fa in modo che lo script fuori richiesta faccia la coda di lavoro.
Alla fine della giornata, non è vuoi lo script per continuare l'esecuzione dopo la richiesta http. Supponendo che tu stia usando mod_php, significa che dovrai legare un processo apache fino alla fine dello script.
+1 Soluzione brillante! Grazie per la saggezza che tutti i cavalieri del re non riuscivano a capire. –
Davvero un bel trucco di Milano. Ma devo chiedermi che cosa stai facendo che richiede di masticare un processo del server web dopo che la richiesta web è finita (dal punto di vista del cliente). Sicuramente spero che questo abominio non si aspetti in grande scala! – timdev
Identico (alla lettera) al codice nella pagina di manuale php collegata alla risposta di Lukman, che è stata pubblicata due giorni prima. – GZipp