当前位置:  编程技术>php

php flock文件锁用法实例教程

    来源: 互联网  发布时间:2014-08-30

    本文导语:  php flock文件锁用法 flock (PHP 4, PHP 5) flock — 轻便的咨询文件锁定 说明 bool flock ( int $handle , int $operation [, int &$wouldblock ] ) PHP 支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作)锁定全部文件的...

php flock文件锁用法

flock
(PHP 4, PHP 5)

flock — 轻便的咨询文件锁定

说明
bool flock ( int $handle , int $operation [, int &$wouldblock ] )
PHP 支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作)锁定全部文件的一种轻便方法。

说明:
在 Windows 下 flock() 将会强制执行。

flock() 操作的 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)。

flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。如果锁定会堵塞的话(EWOULDBLOCK 错误码情况下),可选的第三个参数会被设置为 TRUE。锁定操作也可以被 fclose() 释放(代码执行完毕时也会自动调用)。

成功时返回 TRUE, 或者在失败时返回 FALSE.

例子,flock文件锁函数实例。
 

代码示例:

运行 a.php 后,马上运行 b.php ,可以发现 b.php 会等到 a.php 运行完成后(即 10 秒后)才显示:
abc
123
读取数据完整,但时间过长,他要等待写锁释放,再对b.php做修改。
修改 b.php 为:
 

代码示例:

运行 a.php 后,马上运行 b.php ,可以看到输出:
Lock file failed…
证明可以返回锁文件失败状态,而不是向上面一样要等很久。

总结:
建议作文件缓存时,选好相关的锁,不然可能导致读取数据不完整,或重复写入数据。
file_get_contents 好像选择不了锁,不知道他默认用的什么锁,反正和不锁得到的输出一样,是不完整的数据。

您可能感兴趣的文章:
  • php文件锁定读写注意事项
  • php文件锁怎么用?php文件锁入门教程
  • php文件锁定写入实例教程
  • php中 flock 文件锁 详解

    
 
 

您可能感兴趣的文章:

  • PHP的substr() 函数用法
  • php setcookie函数的参数说明及其用法
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • PHP函数microtime()用法与说明
  • php session 原理详解,用法介绍以及如何设置过期时间
  • php析构函数用法举例
  • php时间格式化函数date介绍及用法参考
  • php sprintf函数用法 php浮点数格式
  • php时间格式化函数date介绍及用法参考 iis7站长之家
  • php析构函数用法分享
  • php goto语句用法简介
  • PHP函数microtime()时间戳的定义与用法
  • php pdo mysql query用法介绍
  • PHP ini_set与ini_get函数用法
  • php STDIN标准输入用法举例
  • php zip解压缩类pclzip用法举例
  • MySQL和PHP中substr函数用法
  • PHP中ini_set和ini_get函数的用法小结
  • php pdo insert与pdo insertId的用法
  • php浮点数精度用法分析
  • php GD库函数getimagesize()的用法
  • php session_id()函数介绍及代码实例
  • php 小数点取法实例总结
  • php生成透明背景图片实例
  • php防止sql注入代码实例
  • php逐字拆分字符串 php字符串拆分实例
  • php解析json数据实例
  • php定界符<<<使用技巧和实例
  • php读取sqlite数据库入门实例
  • PHP文件锁定写入实例解析
  • php读取mysql数据库入门实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • php是什么文件 php文件怎么打开
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP源文件加密工具 PHP Screw
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • Linux下重编译PHP后Apache竟然不能解析.php文件?
  • 图解找出PHP配置文件php.ini的路径的方法
  • php解压文件代码实现php在线解压
  • PHP大文件上传问题解析 php大文件上传配置参考
  • 查找php配置文件php.ini所在路径的二种方法
  • linux下的php文件放在哪个文件夹下才能访问
  • php导入excel php使用phpexcel导入excel文件
  • php读取文件内容并清空文件
  • 在linux下配的apache的服务,但是读documeroot下的html文件可以,但是.php文件就不行,为什么呢?
  • PHP配置文件设置上传大文件
  • 请教一个linux下命令运行php文件的问题
  • 如何修改PHP+Apache上传文件大小限制
  • PHP读取文件内容后清空文件示例代码
  • 单文件PHP框架 SinglePHP
  • PHP include任意文件或URL介绍
  • mod_php.so文件被删除还有得救吗
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP去除html标签,php标记及css样式代码参考
  • php输入流php://input使用示例(php发送图片流到服务器)
  • php通过socket_bind()设置IP地址代码示例
  • PHP转换器 HipHop for PHP
  • php安装完成后如何添加mysql扩展
  • PHP 框架 Pop php
  • PHP介绍及学习网站推荐
  • PHP的JavaScript框架 PHP.JS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3