Fopen,fread和flock
|
我需要锁定文件,读取数据,写入文件,然后将其关闭。我遇到的问题是我正在尝试为fopen找到正确的模式。
使用\'a + \'-总是附加数据,使用\'x + \'时总是添加数据,而使用\'w + \'则截断所有数据-无法锁定文件。
这是我的代码:
$fh_task = fopen($task_file, \'w+\');
flock($fh_task, LOCK_EX) or die(\'Cant lock \'.$task_file);
$opt_line = \'\';
while(!feof($fh_task)){
$opt_line .= fread($fh_task, 4096);
}
$options = unserialize($opt_line);
$options[\'procceed\']++;
rewind($fh_task);
fwrite($fh_task, serialize($options));
flock($fh_task, LOCK_UN);
fclose($fh_task);
没有找到相关结果
已邀请:
3 个回复
谷靛
(如果使用的是更新版本的PHP,则为
)。
不会截断(
也不截断),但仍允许您编写。 这是我上次使用这些功能时的摘录:
师埠女
。打开文件后,根据需要使用ѭ9。您也可以打开
进行读写。除此之外,我认为您可以使用相同的代码。 另一个答案是正确的,但是当c自动执行此操作时,他们正在使用额外的步骤来确定使用r或w。
曝匿弄罚