您的位置:首页 > 编程语言 > PHP开发

php文件实现页面访问统计,运用flock锁定文件

2012-07-28 00:00 639 查看
php文件实现计数非常简单,先看下面这段php代码:

<?php
header("Content_type: text/html; charset=utf-8");
function getPageNum(){
 $countFile = "count1.dat";
 if (!file_exists($countFile)){
	$count = 0;
 }else{
	$count = file_get_contents($countFile);
 }
	$count++;
    $fp = @fopen($countFile,"w");
	@fwrite($fp,$count);
	@fclose($fp);
	return $count;
}
echo "此页面已被访问过".getPageNum()."次";
?>

但是这样并发操作可能引起问题,请看下图:


为了解决此问题,需要进行文件锁定,flock()可以解决。

<?php
function pageVisitCount(){
	$count = "count3.dat";
	$num = @file_get_contents($count);
	if ($fp = fopen($count,"w+")){
		flock($fp,LOCK_EX);
		$num++;
		fwrite($fp,$num);
		flock($fp,LOCK_UN);
	}
	return $num;
}
echo pageVisitCount();
?>

看看flock()参数:(懒得打字,贴上php教程手册截图)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: