PHP中文件锁定 flock() 函数
flock — 轻便的咨询文件锁定 说明 flock ( resource $handle,int $operation [,int &$wouldblock ] ) : bool ? flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。 在 PHP 5.3.2版本之前,锁也会被 fclose() 释放(在脚本结束后会自动调用)。 PHP 支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定,否则它不会工作)锁定全部文件的一种轻便方法。 默认情况下,这个函数会阻塞到获取锁;这可以通过下面文档中 LOCK_NB 选项来控制(在非 Windows 平台上)。
operation LOCK_SH 取得共享锁定(读取的程序)。 wouldblock
例子1 $fp = fopen("/tmp/lock.txt","r+"); if (flock($fp,LOCK_EX)) { // 进行排它型锁定 /** *这写需要执行的代码 **/ 释放锁定 } else { echo "Couldn't get the lock!"; } fclose($fp); ? 但是其中需要执行的代码在并发的情况下所有用户进程都会执行,这是一个大坑。
<?php $file = "./test1.txt"; $f = fopen($file,'a'); if($f,LOCK_EX)){#上锁,因为执行的是fwrite(即写入)所以是LOCK_EX fwrite(); } 释放 $f); ?> ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |