设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
PHP文件锁定写入实例解析
返回列表
查看:
1563
|
回复:
0
PHP文件锁定写入实例解析
[复制链接]
qz234
当前离线
积分
7694
2588
主题
2588
帖子
7694
积分
论坛元老
论坛元老, 积分 7694, 距离下一级还需 9992305 积分
论坛元老, 积分 7694, 距离下一级还需 9992305 积分
积分
7694
发消息
电梯直达
楼主
发表于 2018-2-14 05:56:10
|
只看该作者
|
倒序浏览
|
阅读模式
本文以实例讲述了PHP文件写入方法,以应对多线程写入,具体代码如下:
function file_write($file_name, $text, $mode='a', $timeout=30){
$handle = fopen($file_name, $mode);
while($timeout>0){
if ( flock($handle, LOCK_EX) ) { // 排它性的锁定
$timeout--;
sleep(1);
}
}
if ( $timeout > 0 ){
fwrite($handle, $text.'\n');
flock($handle, LOCK_UN);
fclose($handle); //释放锁定操作
return true;
}
return false;
}
其中flock(int $handle, int $operation)函数操作的 handle 必须是一个已经打开的文件指针。
operation 可以是以下值之一:
要取得共享锁定(读取的程序),将 operation 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。
要取得独占锁定(写入的程序),将 operation 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。
要释放锁定(无论共享或独占),将 operation 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。
如果不希望 flock() 在锁定时堵塞,则给 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。
此外,
fclose()用来释放锁定操作,在代码执行完毕时调用。
您可能感兴趣的文章:
PHP flock 文件锁详细介绍
PHP多进程编程实例
PHP文件锁函数flock()详细介绍
PHP对文件进行加锁、解锁实例
PHP session文件独占锁引起阻塞问题解决方法
PHP使用flock实现文件加锁的方法
深入探究PHP的多进程编程方法
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
简单谈谈 php 文件锁
PHP实现对文件锁进行加锁、解锁操作的方法
PHP 文件锁与进程锁的使用示例
PHP基于文件锁解决多进程同时读写一个文件问题示例
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端