Всем привет столкнулся с проблемой с перезаписью содержимого файла, суть в том, что происходит перезапись каждой строки поочередно в цикле, а мне надо перезаписать все строки целиком, добавление параметра FILE_APPEND проблему не решает, так как по замыслу запись не единичная. Может ли кто подсказать как можно разрешить эту задачу всю голову сломал уже, возможно есть какое-то простое решение? $filepath = "../logs/alt.log"; $filemass = file($filepath); foreach ($filemass as $items){ list($pictname, $value) = explode("|",$items); if($pictname == $id ){ continue; } file_put_contents($filepath, $items); }
Лог уже сформирован там есть значения нужно удалить одну из строк в логе я решил что проще будет перезаписать его без конкретной строки, и не получается если FILE_APPEND то лог переписывается в конец и становится слишком длинным, если без него то идет перезапись каждый раз при получении значения из цикла в окнонцовке на выходе только одно значение, я думаю может еще один файл вспомогательный создаать чтоб брать из него значения, не хотелось бы просто ради одного параметра базу данных создавать..
Лог на то и лог что бы портянки писать. Думать что FILE_APPEND поможет найти строку, ну очень странно. Да, проходится по логу что бы изменить в нём 1 строку как минимум глупо и странно, не для этого он предназначен. В его концепции лучше, каждый раз создавай новый лог. Типа: Код (Text): ./support.error.log <-- Новый лог, всё что ниже старые логи ./support.error.log.1 ./support.error.log.2.gz ./support.error.log.3.gz ./support.error.log.4.gz ./support.error.log.5.gz ./support.error.log.6.gz
Ну да это как бы лог но не совсем лог ), для меня это и учебный пример и в то же время импровизация, спасибо вам попробую во второй файл все переписывать а потом затирать этот, этакая мини база данных получается )
Ну если учебный, то не надо через выхлопную трубу это делать. Используй txt или ещё какой формат, csv наконец. Есть замечательная SQLite, создаёшь файл *.db и вот тебе БД.
@Alexus, добавьте какую-нибудь переменную. Инициализируйте её значением ноль. В цикле - если её значение === 0 - присвойте ей значение FILE_APPEND. Эту переменную передавайте соответствующим параметров в функцию file_put_contents()