模拟flock实现文件锁定
2015-01-24信息快讯网
$lock0和$lock1就是文件锁定的标识符,当文件被某一用户打开的时候,$lock0和$lock1就会产生,当该文件没打开则不存在。
其实最关键就是有个标识符来表示当前这个文件的状态, $lock0和$lock1就是起这样的作用。
<?php
// Lock a file, timing out if it takes too long.
function lock ($lock, $tries) {
$lock0 = ".{$lock}0";
$lock1 = ".{$lock}1";
for ($i=0; $i<$tries; $i++) {
if (!is_file($lock0)) {
touch($lock0);
if (!is_file($lock1)) {
touch($lock1);
return 1;
}
}
usleep(100);
}
return 0;
}
// Unlock a file.
function unlock ($lock) {
unlink(".{$lock}1");
unlink(".{$lock}0");
}
// Usage example.
$filename = "somefile";
$data = "stuff and thingsn";
$tries = 10;
if (lock($filename, $tries)) {
$h = fopen($filename, "a") or die();
fwrite($h, $data);
fclose($h);
/**
* 另外一个进程写文件,检查是否锁定
*/
if (lock($filename, $tries)) {
$h2 = fopen($filename, "a") or die();
fwrite($h2,'check lock');
fclose($h2);
}else{
//die("Failed to lock $filename after ".($tries*100)." milliseconds!";
}
unlock($filename);
} else {
//die("Failed to lock $filename after ".($tries*100)." milliseconds!";
}
?>
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
phplock(php进程锁) v1.0 beta1
谈PHP生成静态页面分析 模板+缓存+写文件
最新的php 文件上传模型,支持多文件上传
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
PHP 上传文件的方法(类)
php fckeditor 调用的函数
php error_log 函数的使用
Google PR查询接口checksum新算法第1/2页
PHP集成FCK的函数代码
swfupload 多文件上传实现代码
使用PHP socke 向指定页面提交数据
php socket方式提交的post详解
效率较高的php下读取文本文件的代码 原创
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
一个捕获函数输出的函数
回答PHPCHINA上的几个问题:URL映射
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
一键删除顽固的空文件夹 软件下载
php中的登陆login
php生成文件
FCKeditor的安装(PHP)
如何隐藏你的.php文件
实例(Smarty+FCKeditor新闻系统)
PHP文件上传实例详解!!!
PHP中通过ADODB库实现调用Access数据库之修正版本 原创
global.php
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
vBulletin HACK----关于排版的两个HACK
利用 window_onload 实现select默认选择
使用sockets:从新闻组中获取文章(一)
优化NFR之一 --MSSQL Hello Buffer Overflow