同时打开页面时,txt 文件中的点击计数器计数访问者
Hits counter in txt file count visitors when open page simultaneously
我用它来计算我网站的点击率:
$counter_name = "counter.txt";
$f = fopen($counter_name,"r");
$counterVal = fread($f, filesize($counter_name));
fclose($f);
$counterVal++;
$f = fopen($counter_name, "w");
fwrite($f, $counterVal);
fclose($f);
请问2个以上访问者同时打开页面会不会有问题?如果是,如何使它计算所有点击数?
当(例如)100 个用户同时打开页面时,文件不会被其中之一锁定?
非常感谢!
这可能对您有帮助:
$filename = "counter.txt";
$number = file_get_contents($filename);
$file = fopen($filename, 'a');
if (flock($file, LOCK_EX)) {
ftruncate($file, 0);
fwrite($file, $number+1);
flock($file, LOCK_UN);
}
fclose($file);
我用它来计算我网站的点击率:
$counter_name = "counter.txt";
$f = fopen($counter_name,"r");
$counterVal = fread($f, filesize($counter_name));
fclose($f);
$counterVal++;
$f = fopen($counter_name, "w");
fwrite($f, $counterVal);
fclose($f);
请问2个以上访问者同时打开页面会不会有问题?如果是,如何使它计算所有点击数?
当(例如)100 个用户同时打开页面时,文件不会被其中之一锁定?
非常感谢!
这可能对您有帮助:
$filename = "counter.txt";
$number = file_get_contents($filename);
$file = fopen($filename, 'a');
if (flock($file, LOCK_EX)) {
ftruncate($file, 0);
fwrite($file, $number+1);
flock($file, LOCK_UN);
}
fclose($file);