这里我们用到一个叫做锁的东西,
简单解释一下锁
flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。
1.LOCK_SH 取得共享锁定(读取的程序)。
2.LOCK_EX 取得独占锁定(写入的程序。
3.LOCK_UN 释放锁定(无论共享或独占)。
代码:
<?php
suo('a.txt');
function suo($path){
//首先判断文件是否存在
if(file_exists($path)){
$fp = fopen($path,'r+');
//共享锁
flock($fp,LOCK_SH);
//读文件
$num = fread($fp,1000);
var_dump($num);
$num++;
//锁门
flock($fp,LOCK_EX);
//读取的时候 指针挪到前面
fseek($fp , 0);
//写入
fwrite($fp , $num);
//共享锁
flock($fp , LOCK_SH);
//关闭
fclose($fp);
return "你是第 {$num} 次了";
}else{
//不存在就创建文件
$fp = fopen($path,'w+');
//锁门
flock($fp,LOCK_EX);
//写入
fwrite($fp,1);
//释放suo
flock($fp,LOCK_UN);
//关闭话柄
fclose($fp);
return '你这是第一次吧';
}
}