PHP: как писать данные в конец файла?

Есть такие вещи, которые нужны не очень часто, но зато когда понадобятся, приходится искать где-попало. Одна из них — способ записать текст в конец файла.

Иногда удобно логгировать какие-нибудь процессы или ошибки прямо в файл и тут же видеть результат в окне браузера.

Делается это простой коммандой:

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);

Только не забудьте добавить перед файлом путь, который не будет вести в публичную часть сайта, иначе любой желающий сможет увидеть эту информацию.

Напишите комментарий