我有一个脚本,每隔几个小时就重写一个文件。该文件通过 php include 插入到最终用户的 html 中。
我如何检查我的脚本在这个确切的时刻是否正在运行(例如重写)文件,当它被调用给用户进行显示时?这甚至是一个问题,如果他们同时访问文件会发生什么,几率是多少,用户是否只需要等到脚本完成工作?
提前致谢!
更多关于这个主题...
这是使用file_put_contents
and的一种方式LOCK_EX
吗?
当脚本不时保存其数据时
file_put_contents($content,"text", LOCK_EX);
当用户打开页面时
if (file_exists("text")) {
function include_file() {
$file = fopen("text", "r");
if (flock($file, LOCK_EX)) {
include_file();
}
else {
echo file_get_contents("text");
}
}
} else {
echo 'no such file';
}
有人可以就语法给我建议吗,这是include_file()
在条件后调用的正确方法吗?如何限制此类调用的数量?
我想这个解决方案也很好,除了同样的调用include_file()
,它甚至可以工作吗?
function include_file() {
$time = time();
$file = filectime("text");
if ($file + 1 < $time) {
echo "good to read";
} else {
echo "have to wait";
include_file();
}
}