解析PHP中flock()函数(附代码实例)

解析PHP中flock()函数(附代码实例),第1张

概述解析PHP中flock()函数(附代码实例)

在PHP的使用过程中,我们经常需要对文件进行读取,但是为了防止其他进程对文件进行读取修改,避免冲突的发生,我们必须在文件读取时将文件锁定,然后对文件进行修改,直到完成 *** 作,在这个过程中使用的是flock()函数,本文就带大家一起了解以下。首次,我们来看一看block()函数的语法:

flock( resource $handle, int $operation, int $wouldblock = ?)

$handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源)。

$operation:LOCK_SH取得共享锁定(读取的程序)。LOCK_EX 取得独占锁定(写入的程序。LOCK_UN 释放锁定(无论共享或独占)。如果不希望 flock() 在锁定时堵塞,则是 LOCK_NB(windows 上还不支持)。

$wouldblock:如果锁定会堵塞的话(EWOulDBLOCK 错误码情况下),可选的第三个参数会被设置为 true。(windows 上不支持)

返回值:成功时返回 true, 或者在失败时返回 false

代码实例

1.使用LOCK_EX

<?PHP$fp = fopen("exit.txt", "r+");if (flock($fp, LOCK_EX)) {  // 进行排它型锁定    ftruncate($fp, 0);      // truncate file    fwrite($fp, "Write something here");    fflush($fp);            // flush output before releasing the lock    flock($fp, LOCK_UN);    // 释放锁定} else {    echo "Couldn't get the lock!";}fclose($fp);?>
exit.text内容:Write something here

2.使用LOCK_NB

<?PHP$fp = fopen('exit.txt', 'r+');/* Activate the LOCK_NB option on an LOCK_EX operation */if(!flock($fp, LOCK_EX | LOCK_NB)) {    echo 'Unable to obtain lock';    exit(-1);}fclose($fp);?>

推荐:2021年PHP面试题大汇总(收藏)》《php视频教程 总结

以上是内存溢出为你收集整理的解析PHP中flock()函数(附代码实例)全部内容,希望文章能够帮你解决解析PHP中flock()函数(附代码实例)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1007978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存