2

いくつかのcsv解析を行っていますが、fclose()関数が呼び出される前に解析をキャンセルすると(別のページに移動するか更新することで)、戻ってプログラムを再起動すると、次のエラーが発生します。

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

スプレッドシート.csvファイルをExcelで開こうとすると、「使用中のファイル」エラーが表示され、「spreadsheet.csvは「別のユーザー」による編集のためにロックされています。」というエラーが表示されます。ファイルにアクセスしようとしている状態。phpを使用して、ファイルが編集用にロックされているかどうかを確認し、ロックを解除する方法はありますか?

4

2 に答える 2

0

flock()を見てください。

私はそれを次のように使用します:

if (!$file->flock(LOCK_EX)) {
    throw new Exception('Unable to obtain lock on file');
}
于 2011-12-16T19:09:26.597 に答える
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 に答える