锁定档案的目的是为了避免程式间的冲突,例如开启了一个档案要写入资料,但如果未写入时有另一个程式更新这个档案,便会出现问题,PHP 内建有 flock() 可以对档案锁定,操作如下:
|
1 2 3 4 5 6 7 8 9 10 |
<?php $fp = fopen("filename.dat", "w"); // 开启 filename.dat 为写入模式 if (flock($fp, LOCK_EX)) { fwrite($fp, "new content"); fclose($fp); flock($fh, LOCK_UN); // 解除锁定 } else { echo "lock failed"; } ?> |
flock() 第二个参数是设定锁定或解锁, 详细可设定内容为:
— LOCK_SH, 取得共享锁定, 读取用
— LOCK_EX, 取得独占锁定, 写入用
— LOCK_UN, 解除锁定
— LOCK_NB, 不要让 flock() 在锁定时堵塞