回答
我有一个应用程序可以做到这一点。
我们所做的是在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