文件锁定在PHP中

前端之家收集整理的这篇文章主要介绍了文件锁定在PHP中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个新手(隔壁的少年)写了一些 PHP代码来跟踪我的网站上的一些用法.我不熟悉PHP,所以我要问一些关于并发文件访问的问题.

我的原生应用程序(在Windows上)偶尔通过点击包含我的PHP脚本的URL将一些数据记录到我的网站.本机应用程序不检查返回的数据.

$fh = fopen($updateFile,'a') or die("can't open file");
        fwrite($fh,$ip);
        fwrite($fh,',');
        fwrite($fh,$date);
        fwrite($fh,implode(',$_GET));
        fwrite($fh,"\r\n");
        fclose($fh);

这是一个流量较低的站点,数据并不重要.但是如果两个用户发生冲突并且脚本的两个实例都试图在文件添加一行,会发生什么?在PHP中是否有任何隐式文件锁定?

上面的代码至少是安全的,不会锁定并且永远不会将控制权返回给我的用户吗?该文件可以被破坏吗?如果我上面的脚本每月删除文件,如果脚本的另一个实例正在写入文件,会发生什么?

你应该锁定文件
<?PHP
$fp = fopen($updateFile,'w+');
if(flock($fp,LOCK_EX)) {
fwrite($fp,'a');
flock($fp,LOCK_UN);
} else {
echo 'can\'t lock';
}

fclose($fp);
原文链接:https://www.f2er.com/php/131887.html

猜你在找的PHP相关文章