我在他們經常要在$時間變量執行PHP循環每X秒
這個定義發送消息的用戶類型是循環代碼我現在所擁有的
$time = $_POST["time"];
for ($x = 0; $x < $amount; $x++) {
mail($completenum, $subject, $message, $headers);
sleep($time);
}
這個代碼的問題是消息永遠不會被髮送,我相信這是因爲睡眠函數會暫停腳本。有任何想法嗎?
我在他們經常要在$時間變量執行PHP循環每X秒
這個定義發送消息的用戶類型是循環代碼我現在所擁有的
$time = $_POST["time"];
for ($x = 0; $x < $amount; $x++) {
mail($completenum, $subject, $message, $headers);
sleep($time);
}
這個代碼的問題是消息永遠不會被髮送,我相信這是因爲睡眠函數會暫停腳本。有任何想法嗎?
PHP是不是真的這樣做的正確的語言,你想試試JavaScript或類似。
PHP的設計讓它在加載時動態地構建一個頁面。通過把一個睡在那兒,你延緩頁面的加載時間,以及服務器和/或瀏覽器最終將超時 - 預計不會頁採取過長的時間來加載,這通常表示錯誤。不同的瀏覽器會做不同的事情,如果延遲很長,你需要修改所有的超時設置。
是不斷在瀏覽器中運行的腳本語言將是能像你一樣要定期踢東西了,甚至更新的頁面 - 要在其後的頁面加載的不斷執行代碼。或者,如果您只需要PHP,您的PHP代碼可以將請求存儲在數據庫中,然後您可以在後臺定期使用另一個「處理」頁面,並使用cron作業或類似內容發送出去按照時間延遲發送電子郵件。有辦法達到你想要什麼用PHP只,這取決於實際最終導致你後,但是把睡眠()到這樣一個網頁的加載速度是不可能成爲一個可靠的解決方案。
好,使一個很大的意義做到這一點。那麼我會看看javascript! – DanMossa 2014-12-06 10:13:07
你應該使用jQuery/Ajax和的setTimeout或setInterval的,而不是 – CRABOLO 2014-12-06 08:00:21