我有一个我正在写的文件,但我需要先锁定它(使用flock()
),以防止任何其他脚本写入它.所以我有:
$file=fopen($file_p);
if (flock($file, LOCK_EX)) {//lock was successful
fwrite($file,$write_contents);
}
Run Code Online (Sandbox Code Playgroud)
但我需要检查它是否已被锁定,以防止其他脚本写入它.
我怎样才能做到这一点?
Rya*_*efi 14
如文档中所述,用于LOCK_NB
进行非阻塞尝试以获取锁定,并在失败时检查$wouldblock
参数以查看其他内容是否包含锁定.
if (!flock($fp, LOCK_EX|LOCK_NB, $wouldblock)) {
if ($wouldblock) {
// something already has a lock
}
else {
// couldn't lock for some other reason
}
}
else {
// lock obtained
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*ell -2
我会检查是否无法获得文件的锁定,如下所示:
if (!flock($file, LOCK_EX)) {
throw new Exception(sprintf('Unable to obtain lock on file: %s', $file));
}
fwrite($file, $write_contents);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8950 次 |
最近记录: |