在我的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创建文件,但我的代码似乎在循环中in foil in whing(文件是创建的,但没有什么是写入内部)。怎么了?

有帮助吗?

解决方案

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

尝试:

$locked = flock($file_handler, LOCK_EX);
.

注意 lock_ex

周围的缺失双引号

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top