网站锁定php文件命令,php脚本文件执行锁定代码

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值