2

我正在做一些 csv 解析,如果我在调用 fclose() 函数之前取消解析(通过导航到不同的页面或刷新),当我返回并再次启动程序时会收到以下错误:

Warning: unlink(spreadsheet.csv) [function.unlink]: Permission denied

当我尝试在 excel 中打开电子表格.csv 文件时,我收到一个“正在使用的文件”错误,说“电子表格.csv 已锁定以供'另一个用户'编辑。”我知道我的 php 服务器当前卡在尝试访问文件的状态。有没有办法可以使用 php 检查文件是否被锁定以进行编辑,然后将其解锁?

4

2 回答 2

0

您可以尝试使用 php 解锁文件,如下所示:

$rFile = fopen("path/file.txt", "r+");
flock($rFile, LOCK_UN); 
fclose($rFile);

获得对该文件的读写访问权限的最佳方法是:

$iOldumask = umask(0);
chmod("path/file.txt", 0777);
umask($iOldumask);
于 2011-12-16T19:10:36.477 回答
0

看看flock()

我像这样使用它:

if (!$file->flock(LOCK_EX)) {
    throw new Exception('Unable to obtain lock on file');
}
于 2011-12-16T19:09:26.597 回答