【发布时间】:2013-09-20 22:09:53
【问题描述】:
让我们考虑一个通过用户输入删除一行的示例 php 脚本:
$DELETE_LINE = $_GET['line'];
$out = array();
$data = @file("foo.txt");
if($data)
{
foreach($data as $line)
if(trim($line) != $DELETE_LINE)
$out[] = $line;
}
$fp = fopen("foo.txt", "w+");
flock($fp, LOCK_EX);
foreach($out as $line)
fwrite($fp, $line);
flock($fp, LOCK_UN);
fclose($fp);
我想知道当前是否有用户正在执行这个脚本,并且文件“foo.txt”在执行完成的同时或之前被锁定,如果其他用户调用了这个脚本,会发生什么? 第二个用户进程会等待第一个用户解锁文件吗?或者第二个用户输入的行删除会失败?
【问题讨论】:
标签: php