eAccelerator = function_exists("eaccelerator_lock");
if(!$this->eAccelerator)
{
//$this->path = $path.($this->_mycrc32($name) % $this->hashNum).'.txt';
$this->path = $path.sha1($name).'.txt';
}
$this->name = $name;
}
/**
* crc32
* crc32封装
* @param int $string
* @return int
*/
private function _mycrc32($string)
{
$crc = abs (crc32($string));
if ($crc & 0x80000000) {
$crc ^= 0xffffffff;
$crc += 1;
}
return $crc;
}
/**
* 加锁
* Enter description here ...
*/
public function lock()
{
//如果无法开启ea内存锁,则开启文件锁
if(!$this->eAccelerator)
{
//配置目录权限可写
$this->fp = fopen($this->path, 'w+');
if($this->fp === false)
{
return false;
}
return flock($this->fp, LOCK_EX);
}else{
return eaccelerator_lock($this->name);
}
}
/**
* 解锁
* Enter description here ...
*/
public function unlock()
{
if(!$this->eAccelerator)
{
if($this->fp !== false)
{
flock($this->fp, LOCK_UN);
clearstatcache();
}
//进行关闭
fclose($this->fp);
}else{
return eaccelerator_unlock($this->name);
}
}
} 0
0
相关文章
PHP文件缓存读取失败怎排查_PHP文件缓存排错技巧【解决】
如何在 Laravel 中实现无时间限制的长时路由执行
PHP静态怎么定义才正确_PHP静态属性与方法的声明规则与使用注意【教程】
php创建文件触发事件监听怎设_php创文件事件监听法【实例】
PHP查询语句返回乱码怎么解决_编码设置排查解答【解答】
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具









