用php fopen()flock()file()为什么它像这样工作

时间:2015-04-13 16:49:58

标签: php file fopen flock

所以 如果我用一个+喜欢的

打开一个文件
fopen($filepath,'a+');
file($filepath);

然后我用文件($ filepath)获取文件内容就可以了

但为什么我什么时候 我用flock锁定文件我也可以使用file()函数获取内容 为什么?

$fp = fopen($filepath, "a+");
while (1) {
  $f =flock($fp,LOCK_EX);
  if($f){
    fwrite($fp,'abc');
    echo "ok loked \n";
    sleep(1);
    $te =file($filepath);
    if(strlen($te[0])==10){
      echo "this is cont ".$te[0]."\n";
      echo "ok this the end \n";
      ftruncate($fp,0);
      fflush($fp);  
    }
    flock($fp, LOCK_UN);
    break;
  }
} 
fclose($fp);
  1. 他们的关系怎么样?

  2. flock文件时file()函数是否使用fopen资源?

  3. 文件是独立的功能还是使用fopen?

2 个答案:

答案 0 :(得分:0)

fopenfile是两个不同的功能。

  

fopen fopen函数完全不同 - 它会打开一个文件   描述符,用作读取或写入文件的流。它   是一个更低级别的功能,一个围绕C fopen的简单包装器   功能,简单地打电话给fopen除了打开之外什么都不做   流。

     

文件 - 将整个文件读入数组

答案 1 :(得分:0)

群是每个进程。因此,如果同一进程(包括所有线程)多次尝试聚集,它将始终成功。

阅读文档末尾的警告: https://www.php.net/manual/en/function.flock.php