回答
我有一個應用程序可以做到這一點。
我們所做的是在db調用的版本中創建一個表,並在其中存儲一個版本號。腳本運行時,它將數據庫中的版本號與php腳本中的版本號進行比較。並執行任何需要將其「升級」到新版本,然後更新數據庫中的版本號。
如果版本表不存在,代碼將創建它並將其標記爲存儲版本零。
是的,您可以使用$ _SESSION變量來確定代碼是否已被執行。會話變量將被設置,直到用戶關閉瀏覽器。如果你想進一步擴展它,你可以設置一個cookie。請參閱以下鏈接瞭解更多詳情。
您也可以延長session_id cookie的使用期限。 http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php – Aloso
如果您正在使用的會話,然後就可以設置用戶會話陣列中的標誌代碼執行後:
function doSomething(){
if (empty($_SESSION['completed'])){
//Do stuff here if it has not been executed.
}
$_SESSION['completed'] = TRUE;
}
您也應該檢查sesison變量來查看該任務是否已經被執行過。這假定用戶可以接受會話cookie。
這並不妨礙通過'$ php thescript.php'命令行重複調用執行功能一遍又一遍。 OP的問題很不明確。 –
只需在該功能中添加一個計數器即可。如果計數器大於0,那麼不要做任何事情。計數器變量應該是靜態的,以便在多次調用中「記住」。至於確保一個文件只執行一次,只需使用「include_once()」而不是「include()」即可。
這不會阻止代碼在頁面重新加載時被執行。 –
事實上,這不會阻止代碼被執行兩次,因爲每次運行腳本(重新加載php文件)時,您的$ call_counter將被設置爲0 – user765368
如果聲明爲靜態,它只會在第一次設置函數叫做。隨後的調用記住最後一個值。閱讀示例#5 http://php.net/manual/en/language.variables.scope.php –
- 1. 防止多次執行JavaScript函數
- 2. 無法阻止執行Java代碼
- 3. Systray進一步阻止代碼執行
- 4. ShowDialog沒有阻止執行代碼,但阻止用戶界面
- 5. 阻止jquery函數的雙重執行?
- 6. 在這種情況下如何阻止jQuery函數執行多次?
- 7. 如何防止javascript中的ajax函數一次執行多次
- 8. 如何阻止if函數在處理中執行後執行?
- 9. (ASP classic)停止/阻止其他代碼執行而不會中斷Javascript執行
- 10. 覆蓋AppDelegate上的初始化 - 防止多次執行代碼
- 11. 如何防止PHP多次執行代碼?
- 12. 一次執行後停止jquery函數
- 13. 停止jquery函數執行兩次
- 14. 不止一次執行jquery函數
- 15. 在jQuery中,如何防止多次點擊執行我的代碼多次?
- 16. 防止多次執行asynctask
- 17. 防止多次執行
- 18. JavaScript函數阻止C#函數被執行?
- 19. 代碼(java,多線程)在一行代碼後停止執行
- 20. jquery - 阻止執行jquery塊中的下一行代碼
- 21. 執行多次阻止谷歌地圖JS造成的Rails Turbolinks
- 22. 如何停止多次執行javascript函數(輪詢)?
- 23. 如何停止函數在JavaScript中多次執行?
- 24. 停止執行C#代碼
- 25. ASP.NET:停止代碼執行
- 26. 停止代碼執行Java
- 27. Java停止代碼執行?
- 28. 停止執行代碼
- 29. 阻止編碼URI兩次
- 30. 防止js函數運行多次
你可以讓PHP文件自己刪除;這確保沒有人可以「重新加載」它。 *保證只運行一次。* –
如果你解釋了爲什麼你想要這個,那麼你會得到一個更好的答案。沒有用戶控制系統,沒有辦法100%可靠。 – 2011-11-14 02:32:03
不,我不只是想刪除該文件。我想這樣做是因爲我有一個php腳本,它將一些數據插入到MySQL數據庫中,並且我不希望多次插入多次數據作爲腳本執行的次數 – user765368