我测试了一下
<?
if(!file_exists("test.txt")){
$fp=fopen("test.txt","a");
fputs($fp,"test\n");
fclose($fp);
}$fp = fopen("test.txt","r");
if(flock($fp,3))
{
while($data=fgets($fp,500))
echo "1.".$data."\n";
$fp_2 = fopen("test.txt","r");
while($data2=fgets($fp_2,500))
echo "2.".$data2."\n";
fclose($fp_2);
fclose($fp);
}?>
中文手册上的说明
本函数用来锁住文件,使别的行程无法存取。传入的参数 fp 为文件的指针。参数 operation 的值为下列的数字之一:1 表示配置锁住文件可以允许别的行程读取;2 表示只有该行程可以写入文件;3 表示读写均锁住;4 则不锁住区块 (block)。而本函数无论在 UNIX 或是 Windows 系列中的锁住效果都相近。执行成功则返回 true 值,否则返回 false 值。我测试了一下flocck的参数
当选择
1。的时候文件能够正常读取
2。的时候锁住了文件,fp_2不能读取文件
3。没什么反映
4。是在块操作的时候起作用的
和手册上的说明有点出入
<?
if(!file_exists("test.txt")){
$fp=fopen("test.txt","a");
fputs($fp,"test\n");
fclose($fp);
}$fp = fopen("test.txt","r");
if(flock($fp,3))
{
while($data=fgets($fp,500))
echo "1.".$data."\n";
$fp_2 = fopen("test.txt","r");
while($data2=fgets($fp_2,500))
echo "2.".$data2."\n";
fclose($fp_2);
fclose($fp);
}?>
中文手册上的说明
本函数用来锁住文件,使别的行程无法存取。传入的参数 fp 为文件的指针。参数 operation 的值为下列的数字之一:1 表示配置锁住文件可以允许别的行程读取;2 表示只有该行程可以写入文件;3 表示读写均锁住;4 则不锁住区块 (block)。而本函数无论在 UNIX 或是 Windows 系列中的锁住效果都相近。执行成功则返回 true 值,否则返回 false 值。我测试了一下flocck的参数
当选择
1。的时候文件能够正常读取
2。的时候锁住了文件,fp_2不能读取文件
3。没什么反映
4。是在块操作的时候起作用的
和手册上的说明有点出入
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货