2011-02-01 87 views
1

嘿! 我正在尋找一些可以幫助我完成這樣的任務的方法: 編寫一個函數,每2天清除XML文件的內容。不使用CRON或類似工具,只使用PHP。 到目前爲止,我從來沒有做過與時間相關的腳本,所以有沒有辦法讓它只與PHP? 我認爲所有功能都是沒有用戶注入的,所以我嘗試使用sleep()函數,但是我認爲必須有更好的解決方案。 任何人都知道的方式來幫助我?Php腳本每天運行幾次而沒有CRON?

+2

不使用CRON或類似工具的原因是什麼? – initall 2011-02-01 15:46:39

+0

不知道,但我必須想辦法以另一種方式做到這一點,那是在我的痛... – Axxxon 2011-02-02 08:13:14

回答

0

沒有Cron或打開瀏覽器,我不確定這是可能的嗎?

+0

那是諷刺嗎?我從來沒有確定在SO – benhowdle89 2011-02-01 15:48:05

0

讓腳本sleep() 2天是沒有好主意。使用webcron

+0

沒有webcron也,我可以只使用php相關的工具只有 – Axxxon 2011-02-02 08:14:15

+0

嗯,東西必須調用腳本。如果你不能使用除PHP以外的任何東西(瘋狂的要求),那麼腳本一定不能退出。這意味着你必須讓它睡覺()。你甚至不能在'system'('at'')`因爲你不是腳本的一部分,也不是用PHP編寫的。 – rik 2011-02-02 15:43:34

0

當沒有cronjobs的原因是,你不能在你的服務器上定義cronjobs,也許你可以在另一臺(本地)機器上每隔一天發出一個HTTP請求的腳本來觸發你的PHP腳本?

4

在每個請求上檢查文件的修改或創建日期。 如果當前時間減去文件時間大於2天 - 刪除文件或清除內容。

這種情況下的請求是分辨率差的時鐘。通常檢查文件時間(統計)是相當快的操作。

0

如果您的腳本執行速度很快,您可以使用「基於用戶的cron」。

- 你somwhere保存最後一次執行時間 - 每個訪問者觸發最後執行時間 檢查 - 如果執行時間超過規定的時間執行該腳本

如果它可以是一個很好的解決你的腳本不需要精確的執行時間,並且執行起來非常快(觸發執行的用戶不應該受到影響)

0

您可以按照here所述使用MySQL數據庫或文件來安排作業。

當cron作業不可用或未配置時,WordPress也使用相同的方法。