php的写文件并发问题谁遇见过?

 原贴:http://bbs.phpchina.com/viewthread.php?tid=103832

php的写文件并发问题谁遇见过?

php的写文件并发问题谁遇见过?

现 在写了一个访问统计访问人数,网站的访问量每天也就几千人,结果发现统计结果有时会出问题,使用APACHE AB 高流量测试更能发现问题,确定问题是出在file_put_contents  未完成就被另一个file_get_contents读取为 NULL,使用了排他型锁定仍然无法 解决问题。
请问该如果解决读写 文件并发问题?为什么加锁也没有用?
<script src="http://bbs.phpchina.com/tag.php?action=relatetag&rtid=103832" type="text/javascript"></script>

TOP

我看到FLEAPHP框架里有这样两个函数

复制PHP内容到剪贴板
PHP代码:
/** * safe_file_put_contents() 一 次性完成打开文件,写入内容,关闭文件三项工作,并且确保写入时不会造成并发冲 突 * * @param string $filename * @param string $content * @param int $flag * * @return boolean */ function safe_file_put_contents($filename, & $content) { $fp fopen($filename'wb'); if ($fp) { flock($fpLOCK_EX); fwrite($fp$content); flock($fpLOCK_UN); fclose($fp); return true; } else { return false; } }

复制PHP内容到剪贴板
PHP代码:
/** * safe_file_get_contents() 用共享锁模式打开文件并读取内容,可以避免在并发写入造成的读取不完整问题 * * @param string $filename * * @return mixed */ function safe_file_get_contents($filename) { $fp fopen($filename'rb'); if ($fp) { flock($fpLOCK_SH); clearstatcache(); $filesize filesize($filename); if ($filesize 0) { $data fread($fp$filesize); } else { $data false; } flock($fpLOCK_UN); fclose($fp); return $data; } else { return false; } }

不知道能否解决你的问题

TOP

汗 为什么没换行  ~~

TOP

有没有人试过吗? 行不?
欢迎登录我的个人主页
WwW.fly020.com

TOP

复制PHP内容到剪贴板
PHP代码:
file_put_contents(sys_get_temp_dir() . '/test.txt', new foo(), LOCK_EX);

TOP

没有试过,嘻嘻

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值