PHP中的'flock'有什么用
What is the use of 'flock' in PHP
我在 Codeigniter 3 上工作了一个月,我想制作自己的日志记录应用程序,记录用户的输入及其在 website.So 上的操作我深入研究了与登录 codeigniter 和他们我发现了一个函数 'flock' 让我很好奇。我试图在官方 php 文档网站上阅读它,但没有找到任何令人满意的解释。如果有人可以帮助我解决这个问题,比如我们为什么使用它以及这个功能的实际实现和用例是什么,那对我来说将是一个很大的帮助..!!
谢谢..!!
在 PHP 中使用文件系统时的一个问题是,在您开始使用 fopen 处理文件后,一个或多个脚本仍然可能更新同一文件,
这可能会导致几个问题,想想如果同一个文件同时更新。
PHP 中的 flock() 函数会在文件打开后锁定文件以避免此问题。它还 returns 一个布尔值,取决于锁定是否成功。
flock() 也使用不同的标志来设置函数必须如何工作,
他们是:
- LOCK_SH获取共享锁(reader)。
- LOCK_EX 获取独占锁(writer)。
- LOCK_UN 释放锁(共享或独占)。
举个例子,希望对理解有帮助:
$fp = fopen("/tmp/lock.txt", "r+");
if (flock($fp, LOCK_EX)) { // acquire an exclusive lock
// update the file
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
我在 Codeigniter 3 上工作了一个月,我想制作自己的日志记录应用程序,记录用户的输入及其在 website.So 上的操作我深入研究了与登录 codeigniter 和他们我发现了一个函数 'flock' 让我很好奇。我试图在官方 php 文档网站上阅读它,但没有找到任何令人满意的解释。如果有人可以帮助我解决这个问题,比如我们为什么使用它以及这个功能的实际实现和用例是什么,那对我来说将是一个很大的帮助..!!
谢谢..!!
在 PHP 中使用文件系统时的一个问题是,在您开始使用 fopen 处理文件后,一个或多个脚本仍然可能更新同一文件,
这可能会导致几个问题,想想如果同一个文件同时更新。
PHP 中的 flock() 函数会在文件打开后锁定文件以避免此问题。它还 returns 一个布尔值,取决于锁定是否成功。
flock() 也使用不同的标志来设置函数必须如何工作, 他们是:
- LOCK_SH获取共享锁(reader)。
- LOCK_EX 获取独占锁(writer)。
- LOCK_UN 释放锁(共享或独占)。
举个例子,希望对理解有帮助:
$fp = fopen("/tmp/lock.txt", "r+");
if (flock($fp, LOCK_EX)) { // acquire an exclusive lock
// update the file
} else {
echo "Couldn't get the lock!";
}
fclose($fp);