Есть такие вещи, которые нужны не очень часто, но зато когда понадобятся, приходится искать где-попало. Одна из них — способ записать текст в конец файла.
Иногда удобно логгировать какие-нибудь процессы или ошибки прямо в файл и тут же видеть результат в окне браузера.
Делается это простой коммандой:
file_put_contents($filename, $txt, FILE_APPEND | LOCK_EX);
$filename — строковая переменная, в которой хранится файл и путь к нему. Если файл лежит в той же папке, что и скрипт, то достаточно указать только его имя.
Обычно файл сам появляется, после срабатывания команды.
Вместо переменной можно вписать название файла прямо в скобки в кавычках. Например так:
file_put_contents('errors.log', $txt, FILE_APPEND | LOCK_EX);
$txt — строковая переменная, в которую нужно записать те данные, которые будут добавляться в конец файла. Вместо неё тоже можно вписать данные в кавычках, как и в случае с $filename.
FILE_APPEND — указание не перезаписывать файл, а добавлять данные в конец.
LOCK_EX — указание, что в момент записи файл нужно блокировать от попыток записи другими скриптами.
Указание необязательное, но полезное. Без него команда будет выглядеть так:
file_put_contents('errors.log', $txt, FILE_APPEND);
Ну а теперь, пример. Этой командой вы можете вести лог IP-адресов, с которых посетители заходили на страничку и во сколько (по серверному времени).
file_put_contents('ip.log', date("d.m.Y H:i:s") . "\t" . $_SERVER["REMOTE_ADDR"] . "\n", FILE_APPEND | LOCK_EX);
Только не забудьте добавить перед файлом путь, который не будет вести в публичную часть сайта, иначе любой желающий сможет увидеть эту информацию.
Напишите комментарий