Sparton
Новичок
unlink - почему может не срабатывать?
Новости хранятся в БД. При первом просмотре её на сайте - создается xml файл, в качестве кеша, откуда потом и берется текст новости. При правке и сохранении новости в админке выполняется unlink файла xml с данной новостью, чтобы создался новый. Так вот проблема в том, что файл не всегда стирается. Примерно 1 раз из 10 файл не стирается. Написал вот такую функцию
Выполняется 5 попыток стирания файла в случае неудачи.
Так вот в log_error.txt всегда пишет, что unlink выполнен удачно, возвращает единицу.
В админке сначала обновляется инфа в БД, затем выполняется эта функция.
Так вот порой файл xml не удаляется, в чем может быть проблема? Может одновременное чтение удаление файла?
Новости хранятся в БД. При первом просмотре её на сайте - создается xml файл, в качестве кеша, откуда потом и берется текст новости. При правке и сохранении новости в админке выполняется unlink файла xml с данной новостью, чтобы создался новый. Так вот проблема в том, что файл не всегда стирается. Примерно 1 раз из 10 файл не стирается. Написал вот такую функцию
PHP:
function delete_file($name,$i=0){
$max_try=5; //макс число попыток
//echo $i;
if (is_file($name)) {
$rez = unlink($name);
//echo "->".$rez."<-";
$fp=fopen($_SERVER['DOCUMENT_ROOT']."info/log/log_error.txt", "a+");
fwrite($fp, $name." - ".$i." - ".$rez."\n");
fclose($fp);
if ($rez or $i == $max_try) return true;
else { sleep(1); $i++; delete_file($name,$i); }
}
else return true;
}
Так вот в log_error.txt всегда пишет, что unlink выполнен удачно, возвращает единицу.
В админке сначала обновляется инфа в БД, затем выполняется эта функция.
Так вот порой файл xml не удаляется, в чем может быть проблема? Может одновременное чтение удаление файла?