php:从未获得文件的独占锁定



在我的php脚本中,解析字符串后,我需要将一些数据写入文件(如果不存在,则在创建它之后)。在写文件之前,我需要独占锁以避免出现问题。这是我的代码:

foreach ($elements[0] as $current) {
    $file_handler = fopen($my_folder . "/" . $current . ".txt", "a");
    $locked = flock($file_handler, "LOCK_EX");
    while (!$locked) {
        usleep(500000);
        $locked = flock($file_handler, "LOCK_EX");
    }
    //got lock
    fwrite($file_handler, $mystring . "n");
    //release lock
    flock($file_handler, LOCK_UN);
    fclose($file_handler);
}
return;

现在,有些事情似乎不起作用。fopen创建了文件,但我的代码似乎在while内部循环(文件已经创建,但里面什么都没写)。怎么了?

您将锁定的参数作为字符串而不是常量传递。

尝试:

$locked = flock($file_handler, LOCK_EX);

请注意LOCK_EX

周围缺少双引号

相关内容

  • 没有找到相关文章

最新更新