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 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
如何做到多笔资料的同步
Oct 09 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
PHPThumb图片处理实例
May 03 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
thinkphp中的url跳转用法分析
Jul 12 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
YII框架http缓存操作示例
Apr 29 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
PHP脚本数据库功能详解(上)
2006/10/09 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
Python3访问并下载网页内容的方法
2015/07/28 Python
详解python编译器和解释器的区别
2019/06/24 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
广告创意求职信
2014/03/17 职场文书
民间个人借款协议书
2014/09/30 职场文书
教师党员个人自我评价
2015/03/04 职场文书
党支部半年考察意见
2015/06/01 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python