3
<?php
//GetParameters here
//send response/end connection
//keep executing the script with the retrieved parameters.
<?php
//GetParameters here
//send response/end connection
//keep executing the script with the retrieved parameters.
你能做到這一點,它只是可能需要一些修修補補。與其試圖關閉第一個腳本上的連接,您需要使用不同的腳本處理數據。
<?php
//Get Parameters
//Send output to user
//now use curl to access other script
$post = http_build_query($_POST); // you can replace this with a processed array
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/otherscript.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
curl_close($ch);
?>
otherscript.php
<?php
header("Connection: Close");
// do your processing
?>
只是爲了說明,當捲曲連接它得到一個連接關閉頭等等捲曲退出。與此同時,「別名」正在處理沒有開放連接的數據。
我很確定使用exec()也可能是一個選項。您可以簡單地在命令行上使用php調用otherscript作爲cmd行參數傳遞變量。像這樣的東西應該爲你工作,如果你運行的是Linux:一個不同的進程ID
我有同樣的想法,但想知道是否可以在不更改腳本的情況下做到這一點。顯然到目前爲止沒有更好的主意 –
會是什麼這種行爲的目的下
現在otherscript.php在後臺運行?你能給個例子嗎? – Jocelyn
那麼,獲取數據,存儲它們,但關閉連接,而「存儲數據」正在進行中。這會減少php-cgi.exe程序。現在我有30多個php-cgi.exe一直在運行。我不想那樣。 –
@DeusDeceit但即使關閉連接,php腳本也會在保存數據時繼續執行,所以我不明白爲什麼您認爲這會爲您節省30個php-cgi進程。 – Nelson