首页 / PHP / 如何使用php锁定打开的文本文件
如何使用php锁定打开的文本文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用php锁定打开的文本文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1528字,纯文字阅读大概需要3分钟。
内容图文
![如何使用php锁定打开的文本文件](/upload/InfoBanner/zyjiaocheng/667/3fbcd83dfa924028894a2ea4525b1bfe.jpg)
这个问题已经在这里有了答案: > file locking in php 3个
我创建了一个脚本来生成由数字和字母组成的序列,如A-0045-20170502.我的问题是如何锁定文件,以便在同时使用该文件时,只有一个用户可以在其他用户之前进行编辑.
函数sequence(){
$letter = [‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’I’,’J’,’K’,’L ‘,’M’,’N’,’O’,’P’,’Q’,’R’,’S’,’T’,’U’,’V’,’W’,’X’, ‘Y’,’Z’];
$content = file_get_contents("seq_file");
$content = file_get_contents("seq_file") + 1 ;
$letter_number = file_get_contents("letter_number");
if ($content ==9999){
file_put_contents("seq_file",0);
$content = 0 ;
$letter_number = $letter_number + 1 ;
file_put_contents("letter_number",$letter_number);
}
file_put_contents("seq_file",$content);
return sprintf("%s-%05d-%s",$letter[$letter_number],$content,date("Ymd",strtotime("now"))); // A-00522-20170205
}
if(file_exists("seq_file") && file_exists("letter_number")){
$seq = sequence();
} else {
file_put_contents("letter_number",0);
file_put_contents("seq_file",0);
$seq = sequence();
}
解决方法:
您可以为此使用flock功能.完成读/写操作后,请确保使用flock($file_handle,LOCK_UN)释放锁.
来自PHP网站的示例:
<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (flock($fp, LOCK_EX)) { // acquire an exclusive lock
ftruncate($fp, 0); // truncate file
fwrite($fp, "Write something here\n");
fflush($fp); // flush output before releasing the lock
flock($fp, LOCK_UN); // release the lock
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
?>
内容总结
以上是互联网集市为您收集整理的如何使用php锁定打开的文本文件全部内容,希望文章能够帮你解决如何使用php锁定打开的文本文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。