回答
你可以这样做用锁文件,你写的服务器,如:
if (!is_file("visited_once.txt"))
{
//you're the one
file_put_contents("visited_once.txt", "");
}
但也许因为我不是100%肯定的文件解决方案,适用100.000并发请求数据库的解决方案会更复杂。
创建表
CREATE TABLE visited
(
visit int NOT NULL,
UNIQUE (visit)
);
做这样的事情上要求
try
{
$db->query("INSERT INTO visited VALUES (0)");
//you're the one
}
catch (Exception $ex)
{
//nope! Already visited
}
本采用了独特的密钥,并且依赖于数据库的一致性。
我接近100%确定文件解决方案(如它所写)会在脚本被100.000个并发请求命中时窒息。如果使用['flock()'](http://php.net/manual/en/function.flock.php)并请求独占锁定,你可能会有更好的运气。 – NullUserException
这就是为什么我包含数据库示例。我非常信任MySQL。 –
这是我想的最好的答案,但是我用if(mysql_errno()== 1062)代替try/catch – Aleix
<?php
if(file_exists('check.txt')) exit;
file_put_contents('check.txt','1');
...your code...
?>
我会写一些文件作为脚本正在执行的标志,并在脚本的末尾删除文件。在脚本开始时检查文件是否存在。
例如为:
$flag_file = 'flag.tmp';
if (file_exists($flag_file)) exit();
file_put_contents($flag_file, 1);
// rest of the script
unlink($flag_file);
你可以写一个txt文件或MySQL表?如果是这样设置的文本文件中的字符或MySQL表为0的字段,以及PHP脚本第一次运行时,将其设置为1,并使用if语句:
RETRIEVE YOUR NUMBER VIA TXT OR MYSQL
$myVar = YOUR NUMBER;
if ($myVar > 0){
//don't run
}
else{
//run
}
- 1. 运行php脚本的同时用户
- 2. 同时运行php脚本
- 3. PHP同时运行脚本?
- 4. 如何防止PHP脚本在同一时间运行?
- 5. 制作一个python脚本只能在同一时间运行一次
- 6. PHP邮件脚本每晚自动运行同一时间
- 7. 在LoadRunner中从一个脚本运行多个用户同时
- 8. 运行第二个PHP脚本,同时保持客户端在同一页
- 9. Javascript - 在运行脚本前只等待一段时间
- 10. php长时间运行脚本
- 11. PHP运行多个脚本同时
- 12. 防止PHP脚本同时运行
- 13. PHP同时运行2个脚本
- 14. 脚本只运行一次
- 15. 运行一个bash脚本使用php
- 16. 在不同的时间每天执行一个php脚本
- 17. PHP运行AJAX脚本只能运行一次
- 18. PHP运行小时脚本
- 19. 只有经过一段时间才能运行网站php脚本
- 20. 只在脱机时执行php脚本
- 21. 如果脚本只能在同一服务器上的另一个脚本访问脚本时才能运行
- 22. 如何在使用Maven for PHP时运行PHP脚本?
- 23. 即使用户关闭浏览器,PHP脚本能否继续运行?
- 24. php脚本持续运行,并与cronjob同时运行
- 25. 即使用户离开页面也执行php脚本
- 26. ScriptManager立即运行脚本
- 27. 脚本多次运行时,它应该只运行一次
- 28. 在同一个文件中用HTML运行PHP脚本
- 29. Python脚本只能在时间窗口中运行
- 30. 从另一个php脚本在不同的文件夹中运行php脚本
什么是用例?你有什么尝试,为什么没有工作? – bdares
这是一个笑话吗? “即使100个用户同时访问它,我也希望它能够第一次被执行”......在你问之前请考虑一下。 – jeremy
有3个以上的答案,这个问题显然有优点,不管问题有多短。为什么downvote? – Zak