php flock()函数

时间:2017-03-15
php flock()函数锁定或释放文件。本文章向大家介绍php flock()函数的基本使用方法和实例,需要的朋友可以参考一下。

定义

flock()函数锁定或释放文件。

语法

PHP flock()函数具有以下语法。

flock(file,lock,block)

参数

当你锁定一个文件,我们可以有两个选项。

  • 只读锁,与其他进程共享对文件的访问,
  • 独占锁,允许您更改文件。
参数 是否必须 描述
file 需要。 要锁定或释放的文件
lock 需要。 使用什么样的锁。
block 可选的。 设置为1以锁定时阻止其他进程

可能的锁定(lock)值:

  • LOCK_SH - 共享锁(阅读器)。
  • LOCK_EX - 排它锁(写)。阻止其他进程访问该文件
  • LOCK_UN - 释放共享或独占锁
  • LOCK_NB - 在锁定时阻止其他进程

flock()函数将文件句柄作为其第一个参数,并将锁定操作作为其第二个参数。

返回

PHP flock()成功时返回TRUE,失败时返回FALSE。

实例1

flock()可以这样使用:

<?PHP
/*
http://www.manongjc.com/article/1793.html
作者:码农教程
*/
      $fp = fopen( $filename,"w"); // open it for WRITING ("w")
      if (flock($fp, LOCK_EX)) {
             // do your file writes here
             flock($fp, LOCK_UN); // unlock the file
      } else {
             // flock() returned false, no lock obtained
             print "Could not lock $filename!\n";
      }
?>

实例2

锁定文件并向其写入字符串

<?php
/*
http://www.manongjc.com/article/1793.html
作者:码农教程
*/
$file = fopen("test.txt","w+");

// exclusive lock
if (flock($file,LOCK_EX)){
  fwrite($file,"java2s.com");
  // release lock
  flock($file,LOCK_UN);
}else{
  echo "Error locking file!";
}

fclose($file);
?>