博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站锁定php文件命令,php脚本文件执行锁定代码
阅读量:7195 次
发布时间:2019-06-29

本文共 1027 字,大约阅读时间需要 3 分钟。

php脚本文件执行锁定代码

有时候会出现PHP脚本并发执行的情况,如果想要避免这种情况,可以尝试下面的方法,为PHP脚本加锁

//针对php脚本文件执行锁定的代码,避免脚本在同一时间重复运行,http://ken.01h.net/

define('PHP_LOCK_FILE', dirname(__FILE__) . '/php.lock');

ini_set('display_errors', true);

ini_set('error_reporting', E_ALL);

global $php_lock_fp;

$php_lock_fp = @fopen(PHP_LOCK_FILE, "w+") or die("Couldn't open the lock file !\n");

if (flock($php_lock_fp, LOCK_EX + LOCK_NB)) { //排它型锁定

register_shutdown_function('php_release_lock'); //当脚本结束时执行该方法,用于解锁

fwrite($php_lock_fp, getmypid());

} else {

@fclose($php_lock_fp);

exit("Couldn't lock the file !\n");

}

function php_release_lock()

{

global $php_lock_fp;

if(is_resource($php_lock_fp)){

flock($php_lock_fp, LOCK_UN); //释放锁定

@fclose($php_lock_fp);

printf("Release lock!\n");

}

@unlink(PHP_LOCK_FILE);

printf("php exit!\n");

}

?>

将以上代码保存为phplock.php文件,在需要用到锁定功能的脚本代码中引入该文件,示例如下:

set_time_limit(0);

require(dirname(__FILE__) . '/phplock.php'); //引入脚本文件锁定代码

//test

for($i=0; $i<10; $i++){

echo str_repeat(" ", 1024);

echo $i."

\n";

flush();

sleep(5);

}

?>

标签:PHP

转载地址:http://namkm.baihongyu.com/

你可能感兴趣的文章
iis,apache,nginx修改主机头
查看>>
我的友情链接
查看>>
Recycled和Recycler的故事
查看>>
跟踪被锁的AD账号
查看>>
c中嵌入Python
查看>>
ThinkPHP 美化URL
查看>>
Linux下find函数用法汇总
查看>>
RHEL6和RHEL7系统运行级别设置以及切换
查看>>
nagios短信监控
查看>>
瓜娃系列 (6) - ComparisonChain和primitives包
查看>>
Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
查看>>
硬盘分区的参数详解
查看>>
第二周第四节、特殊权限(set_uid、set_gid、stick_bit)/软连接及硬连接
查看>>
xml schema 学习笔记
查看>>
Linux日常学习知识总结
查看>>
mybatis-generator自动生成
查看>>
Python学习第二天
查看>>
Linux自动化运维之Cobbler(自定义仓库)NO.4
查看>>
double数字串 带E的转成正常的
查看>>
JS正则表达式的一些例子
查看>>