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 相关文章推荐
我的论坛源代码(一)
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
php数组总结篇(一)
Sep 30 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
关于php循环跳出的问题
Jul 01 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
php实现微信发红包功能
Jul 13 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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
基于jQuery的倒计时插件代码
2011/05/07 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
Python 错误和异常代码详解
2018/01/29 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
python中单下划线_的常见用法总结
2018/07/10 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Python通过format函数格式化显示值
2020/10/17 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
.net C#面试题
2012/08/28 面试题
数控技术专业推荐信
2013/11/01 职场文书
前台文员个人求职信范文
2014/01/05 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
初中语文教师研修日志
2015/11/13 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python