php file_put_contents解决高并发情况下文件写入的问题
时间:2016-09-02
php file_put_contents函数用于向文件中写入或追加内容,但是如果在并发情况下就会出问题,本文章向大家介绍如何解决 file_put_contents并发情况下文件写入的问题,需要的朋友可以参考一下。
我们先来看一下file_put_contents的语法及参数,下面是php手册上对file_put_contents的解释
int file_put_contents ( string $filename , string $data [, int $flags [, resource $context ]] )
参数:
filename
要被写入数据的文件名。
data
要写入的数据。类型可以是 string,array 或者是 stream 资源(如上面所说的那样)。
flags
flags 可以是 FILE_USE_INCLUDE_PATH,FILE_APPEND 和/或 LOCK_EX(获得一个独占锁定),然而使用 FILE_USE_INCLUDE_PATH 时要特别谨慎。
context
一个 context 资源。
要实现file_put_contents高并发写入文件,需要使用到第三个参数flags,flags
参数为LOCK_EX
即可在高并发时获得一个独占锁定。 请看下面实例代码:
<?php
$contents = file_get_contents('pickles.txt');
$contents = strtoupper($contents);
/* http://www.manongjc.com/article/1433.html */
file_put_contents('pickles.txt', $contents, FILE_APPEND | LOCK_EX);
?>
- Eureka Server之间的注册表信息同步
- .NET Core 观察者模式 以及 delegate 和 event
- webapp设置适应pc和手机的页面宽高以及布局层叠图片文字
- 比较Spring AOP与AspectJ
- Promise原理解析与实现
- Spring Cloud 覆写远端的配置属性
- C语言心得一
- .NET Core装饰模式和.NET Core的Stream
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
- 多行图片hover加边框兼容IE7+
- Debian JDK安装及配置
- Python With-As
- 用 TensorFlow 创建自己的 Speech Recognizer
- Shell利剑之xargs和time
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android仿QQ分组实现二级菜单展示
- Android RecyclerView实现拼团倒计时列表实例代码
- 正则十八式-第一式:直捣黄龙
- 安装Grafana并使用Cloudera Manager DataSource
- Python中类变量、成员变量、局部变量的区别
- Android 友盟第三方登录与分享的实现代码
- Android实现双击返回键退出应用实现方法详解
- [- 多媒体 -] OpenGLES3.0 接入视频实现特效 - 引言
- OpenLDAP集成sssd同步用户并集成SSH登录
- 【 FlutterUnit 食用指南】 开源篇
- Flutter中如何实现无Context跳转详解
- MySQL常见问题一
- Android WiFi热点开发的示例代码
- android实现简单计算器功能
- 【 Flutter Unit 解牛篇 】代码折叠展开面板,怎么没有线?