首页 > Web开发 > 详细

php 文件锁

时间:2019-10-25 10:24:07      阅读:83      评论:0      收藏:0      [点我收藏+]
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/1/6
 * Time: 11:30
 */

class FileLock{

    //文件锁存放路径
    private $path='';

    //文件句柄
    private $fp='';

    //锁文件
    private $lockFile='';

    /**
     * 构造函数
     * @param string $path 锁的存放目录
     * @param string $name 锁 KEY
     */
    public function __construct($name,$path=''){
        if(empty($path)) $this->path=RUNTIME_PATH;
        else $this->path=$path;
        $this->lockFile=$this->path.md5($name).'.lock';
    }

    /**
     * 加锁
     */
    public function lock(){
        $this->fp=fopen($this->lockFile,'a+');
        if($this->fp===false){
            return false;
        }
        return flock($this->fp,LOCK_EX);//获取独占锁
    }

    /**
     * 解锁
     */
    public function unlock(){
        if($this->fp!==false){
            @flock($this->fp,LOCK_UN);
            clearstatcache();
        }
        @fclose($this->fp);
        @unlink($this->lockFile);
    }
}

php 文件锁

原文:https://www.cnblogs.com/fuqian/p/11736430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!