php使用多个进程同时控制文件读写示例


Posted in PHP onFebruary 28, 2014
<?php
/**
 * 写入数据
 * @param  [string] $path [文件路径]
 * @param  [string] $mode [文件打开模式]
 * @param  [string] $data [数据]
 * @return [bool]       
 */
function writeData($path, $mode, $data){
       $fp = fopen($path, $mode);
       $retries = 0;
       $max_retries = 100;
       do {
        if ($retries > 0) {
         usleep(rand(1, 10000));
        }
        $retries += 1;
       }while (!flock($fp, LOCK_EX) and $retries <= $max_retries);
       if ($retries == $max_retries) {
        return false;
       }
       fwrite($fp, $data."\r\n");
       flock($fp, LOCK_UN);
       fclose($fp);
       return true;
}

/**
 * 读数据
 * @param  [string] $path [文件路径]
 * @param  [string] $mode [文件打开模式]
 * @return string      
 */
function readData($path,$mode){
     $fp = fopen($path, $mode);
     $retries = 0;
     $max_retries = 100;
     do {
      if ($retries > 0) {
       usleep(rand(1, 10000));
      }
      $retries += 1;
     }while (!flock($fp, LOCK_SH) and $retries <= $max_retries);
     if ($retries == $max_retries) {
      return false;
     }
     $contents = "";
     while (!feof($fp)) {
        $contents .= fread($fp, 8192);
     }
     flock($fp, LOCK_UN);
     fclose($fp);
     return $contents;
}
writeData('D:/webServer/demo.txt','a+','this is a demo');
echo readData('D:/webServer','r+');
PHP 相关文章推荐
什么是MVC,好东西啊
May 03 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
php高级编程-函数-郑阿奇
Jul 04 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
php准确计算复活节日期的方法
Apr 18 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
PHP filesize函数用法浅析
Feb 15 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 #PHP
php命名空间学习详解
Feb 27 #PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 #PHP
php中的strpos使用示例
Feb 27 #PHP
php判断字符串在另一个字符串位置的方法
Feb 27 #PHP
php汉字转拼音的示例
Feb 27 #PHP
PHP中session变量的销毁
Feb 27 #PHP
You might like
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
小程序点击图片实现自动播放视频
2020/05/29 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python修改操作系统时间的方法
2015/05/18 Python
深入理解Django的中间件middleware
2018/03/14 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
python动态视频下载器的实现方法
2019/09/16 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python爬虫---requests库的用法详解
2020/09/28 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
基督教婚礼主持词
2014/03/14 职场文书
竞聘书格式及范文
2014/03/31 职场文书
初一新生军训方案
2014/05/22 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
大学生工作自荐书
2014/06/16 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
致运动员赞词
2015/07/22 职场文书