网站锁定php文件命令,PHP文件锁定读写的一点注意_php

都说文本方式容易出现文件锁定失效等乱七八糟的问题.

其实并不是失效, 而是写法有些不对.

被 lock_ex 后的文件 再以read模式 fopen 的话将读到空内容!!!

如果没有判断就把它作操作后再写入就出错啦....

很多问题出在这里.

再来补充一下

如果一个文件被以write的模式fopen后并 flock(..LOCK_EX)的话

有另一个程序这时去 fopen 它,并且也要 flock(LOCK_EX) 的话,  这肯定出错.

因为第二个fopen时文件的size可能已经被 truncate 成 0 了..

------------- 下面做一个测试 ---------------

测试程序1.  :::: 1.php

$fd = fopen("./test.txt", "w");

flock($fd, LOCK_EX);

sleep(10);

http://www.gaodaima.com/46605.htmlPHP文件锁定读写的一点注意_php

fwrite($fd, "hightman");

flock($fd, LOCK_UN);

fclose($fd);

?>

测试程序2.  ::::: 2.php

$fd = fopen("./test.txt", "r");

echo fread($fd, 512);

fclose($fd);

?>

测试程序3  :::::: 3.php

if ($fd = @fopen("./test.txt", "r+")) {

flock($fd, LOCK_EX);

fseek($fd, 0, SEEK_END);

fwrite($fd, "shit");

flock($fd, LOCK_UN);

fclose($fd);

}

?>

程序测试方法 1: 运行 1.php 然后马上去运行 2.php  ,  2.php 的输出结果是空.

2: 运行 1.php 然后马上去运行 3.php,  3.php 将在 1.php 运行结束后才能结束

不过结果文件内容是: "shit" 而不是 "hightmanshit"

所以特别要注意write时的情况

"w", "r+", "a", "a+" 都要注意文件长度为0的情况!可能文件是空,也可能是被flock

欢迎大家阅读《PHP文件锁定读写的一点注意_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

原创文章,转载请注明: 转载自搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值