01.07.2020
Если стоит задача сохранять логи на несколько дней и чистить более старые, очень хорошо выручает функция ниже.
Первым аргументом передаем то, что хотим записать, вторым название файла для записи, третьим количество дней которые храним наши логи.
В итоге в определенной папке будут для каждого дня сохранятся логи в отдельный файл, а после старые удаляться. Так же для удобства в каждую запись ставим текущую дату и время.
function saveLogSomeDays($toWrite = false, $logName = "", $days = 3) { if(empty($logName) || empty($toWrite)) return false; $days = (int) $days; $dateTime = date("d.m.Y H:i:s"); $dir = $_SERVER['DOCUMENT_ROOT'].'/ТУТ_ПУТЬ_ДО_ПАПКИ_ГДЕ_БУДЕМ_ХРАНИТЬ_ЛОГИ/'.$logName.'/'; if(!file_exists($dir)) mkdir($dir, 0777, "true"); // Записываем информацию в файл текущего дня $fileName = $logName ."__". date("Y-m-d") . ".log"; $fp = fopen ($dir . $fileName, "a"); fwrite($fp, "Дата/время: ".$dateTime."\n\n"); fwrite($fp, print_r($toWrite, true)."\n\n"); fwrite($fp, "-----------------------------\n\n"); fclose($fp); // Пройдемся по файлам папки, если файл старше $days дней, удалим его foreach (glob($dir."*") as $file) { if(time() - filectime($file) > (86400 * $days)) { unlink($file); } } }