我测试了一下
<?
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。是在块操作的时候起作用的
和手册上的说明有点出入