当前位置:  编程技术>php

PHP文件锁定写入实例解析

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

    本文导语:  本文以实例讲述了PHP文件写入方法,以应对多线程写入,具体代码如下: function file_write($file_name, $text, $mode='a', $timeout=30){ $handle = fopen($file_name, $mode); while($timeout>0){ if ( flock($handle, LOCK_EX) ) { // 排它性的锁定 $ti...

本文以实例讲述了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文件锁定写入实例教程
  • php测试硬盘写入速度
  • PHP读取与写入文件小例子
  • 使用php测试硬盘写入速度示例
  • php文件锁定写入实例解析
  • 远程linux主机上,php 无法创建写入文件
  • php读取csv、写入csv与导出csv文件
  • Php连接及读取和写入mysql数据库的常用代码
  • PHP中执行MYSQL事务解决数据写入不完整等情况
  • php操作XML、读取数据和写入数据的实现代码
  • php把session写入数据库的类
  • php把session写入数据库示例
  • php session_id()函数介绍及代码实例
  • php 小数点取法实例总结
  • php生成透明背景图片实例
  • php防止sql注入代码实例
  • php逐字拆分字符串 php字符串拆分实例
  • php解析json数据实例
  • php定界符<<<使用技巧和实例
  • php读取sqlite数据库入门实例
  • PHP去除html标签,php标记及css样式代码参考 iis7站长之家
  • php生成excel列序号代码实例
  • PHP三元运算的2种写法代码实例
  • PHP接收二进制流并生成文件(实例)
  • php读取mysql入门实例
  • php根据身份证号码计算年龄的实例代码
  • PHP递归函数返回值使用实例
  • php实例分享之html转为rtf格式
  • PHP创建桌面快捷方式的实例代码
  • php 强制下载文件实例代码
  • php mailto配置实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php通过pack和unpack函数实现对二进制数据封装及解析
  • Linux下重编译PHP后Apache竟然不能解析.php文件?
  • PHP的Markdown解析器 Parsedown
  • PHP的PDF解析库 PdfParser
  • PHP和Perl的XML解析包 MiniXML
  • PHP的XML和JSON数据解析和缓存包 coreylib
  • php trim函数执行过程解析
  • 好象我的apache服务器不解析我的php程序啊(why)
  • PHP的HTML解析工具 HtmlParser
  • 一个不易被发现的PHP后门代码解析
  • PHP json_decode函数详细解析
  • PHP服务器端异步执行方法解析
  • php替换换行符的问题解析
  • php多任务程序实例解析
  • PHP的HTML解析 wiseparser
  • php伪造ip与防止伪造ip方法解析
  • php垃圾回收机制解析
  • php解析url的三个示例
  • php生成GUID(全球唯一标识符)方法解析
  • PHP中redis的用法深入解析
  • PHP大文件上传问题解析 php大文件上传配置参考
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS


  • 站内导航:


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

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

    浙ICP备11055608号-3