alexz15
Постоялец
- Регистрация
- 3 Окт 2008
- Сообщения
- 394
- Реакции
- 194
- Автор темы
- #1
Всем привет!
Есть файл, в который записываются данные. По истечению указанного размера из файла должны удаляться часть старых строк, и записываться новые. Сейчас у меня такой код:
проблема в том, что удаляются последние строки, а старые остаются на месте.
можно рассмотреть еще такой вариант: перед удалением сначала перемешать все строки в $txt, затем удалить половину и записать в конец новые данные.
я дал пример в 100кб, но файл может быть большим. заранее благодарен за идею или код.
Есть файл, в который записываются данные. По истечению указанного размера из файла должны удаляться часть старых строк, и записываться новые. Сейчас у меня такой код:
PHP:
$fp = fopen($txt, 'a');
flock ($fp, LOCK_EX);
if (filesize($txt) >= 100000) { // если превышает
ftruncate ($fp, 100000 / 2);// то удаляем половину
}
foreach ($str as $output) {
fwrite($fp, $output."\r\n"); // и пишем новые данные
}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
можно рассмотреть еще такой вариант: перед удалением сначала перемешать все строки в $txt, затем удалить половину и записать в конец новые данные.
я дал пример в 100кб, но файл может быть большим. заранее благодарен за идею или код.