好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php怎么锁文件 php文件怎么保存

很多站长朋友们都不太清楚php怎么锁文件,今天小编就来给大家整理php怎么锁文件,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP如何使用文件锁解决高并发问题 2、 PHP下如何对文件进行加锁 3、 PHP简单分布式锁-PHP中的锁 4、 PHP 如何使用文件锁 PHP如何使用文件锁解决高并发问题

<?php

//连接数据库

$con=mysqli_connect("192.168.2.186","root","root","test");

//查询商品数量是否大于0,大于0才能下单,并减少库存

$fp = fopen("lock.txt", "r");

//加锁

if(flock($fp,LOCK_EX))

{

$res=mysqli_fetch_assoc(mysqli_query($con,'SELECT total FROM shop WHERE id=1 LIMIT 1'));

if($res['total']>0){mysqli_query($con,'UPDATE shop SET total=total-1 WHERE id=1');}

//执行完成解锁

flock($fp,LOCK_UN);

}

//关闭文件

fclose($fp);

unset($res);

mysqli_close($con);

?>

PHP下如何对文件进行加锁

有时候你的php脚本或许需要线程安全的保证,比如进行文件写操作的时候。本文提供了文件加锁函数以及使用示例。文件加锁功能也可以用来获得独享的处理空间,防止脚本执行发生同步错误。

PHP简单分布式锁-PHP中的锁

对于PHP的锁,其实并没有什么太多的概念。抛弃一些第三方的依赖,看看有哪些可用的选择。

目前可以想到的就这么多,在该项目中我们采用文件锁,因为其它的两个需要装扩展。文件锁的逻辑就非常简单了

从网上摘抄了一个例子,使用的 eAccelerator 和 文件锁两种 传送门

使用方法

PHP 如何使用文件锁

//WRITE

$fp = fopen("test.txt", 'ab'); //From the end

flock($fp, LOCK_EX); //lock the file for waiting...

fwrite($fp, 'Just A Test String.......'); //Start writing...

flock($fp, LOCK_UN); //Release write lock

fclose($fp); //Close the file读操作:

//READ

$fp = fopen("test.txt", 'r');

flock($fp, LOCK_SH);

//Read from the file.......

flock($fp, LOCK_UN);

fclose($fp);来详细的看看 PHP 手册上面关于函数 flock 的介绍吧:

flock -- 轻便的咨询文件锁定

其函数原型为:bool flock ( int handle, int operation [, int wouldblock] )

PHP 支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作)锁定全部文件的一种轻便方法,需要注意的地方是:在 Windows 下 flock() 将会强制执行。flock() 操作的 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)。 flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。如果锁定会堵塞的话(EWOULDBLOCK 错误码情况下),可选的第三个参数会被设置为 TRUE。锁定操作也可以被 fclose() 释放(代码执行完毕时也会自动调用)。如果成功则返回 TRUE,失败则返回 FALSE。

关于php怎么锁文件的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php怎么锁文件 php文件怎么保存的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did195099
更新时间:2023-04-26   阅读:20次

上一篇: php获取.json php获取json某个键个数

下一篇:安卓连接php 安卓连接airpods

相关资讯

最新资料更新

  • 1.php上传图片木马 php图片上传代码
  • 2.token验证php Token验证失败异地登陆什么意思
  • 3.php余数1 php math
  • 4.php拼音模糊查询 php模糊搜索功能
  • 5.整站系统php源码 php企业网站整站源码
  • 6.phpoutfile的简单介绍
  • 7.nginx隐藏.php nginx隐藏ip
  • 8.php判断多个字符串 php判断字符串包含字符
  • 9.php接口和抽象类的区别 php抽象函数
  • 10.php保存url数据 php获取url参数
  • 11.phpsql过滤类 php过滤器
  • 12.登录注册的php代码 php用户注册登录代码
  • 13.php代理访问源码 php 代理
  • 14.php输入日期表单 php输出日历表
  • 15.php学费多少兄弟连 php教程兄弟连
  • 16.php带协议跳转 php跳转函数
  • 17.phpapp页面 php app
  • 18.php判断对象函数 php判断为空的方法有哪些
  • 19.php添加字体水印 php设置字体
  • 20.php定义多个常量 php定义多个变量

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]