Как на PHP сделать запись в txt-файл на новую строку?

Часто в PHP возникает необходимость поработать с файлами. К примеру, мне захотелось для 1 сайта хранить список определенных дополнительных строк, которые нужны для проверки в скрипте. И чтобы не добавлять эти строки в базу данных и не создавать там лишнюю таблицу, можно создать txt-файл.

Другое дело, а как на PHP записать в этот txt-файл значения, 1 значение — 1 строка. К счастью, это очень просто, смотрите всего 3 строчки кода, и то последняя это просто закрытие файла, а первая — его открытие:

$f = fopen('file.txt', 'a');
fwrite($f, 'Этот текст будет записан в файл' . PHP_EOL);
fclose($f);

Итак, первой строчкой открываем файл file.txt (должен лежать в одной директории с исполняемым скриптом, иначе нужно менять путь). Ну и если у вас сам файл называется по-другому, его название меняем также, разумеется.

Второй параметр - a— это режим открытия файла. Это означает, что открываем для записи и чтения, но при этом уже имеющиеся данные не будут перезаписаны. Все режимы можно посмотреть в официальном справочнике по PHP — https://www.php.net/manual/ru/function.fopen.php

Вторая строка самая важная. Тут с помощью функции fwrite мы и осуществляем запись в файл. Функция принимает 2 параметра:

  1. дескриптор на файл, то есть в какой файл записывать
  2. сама строка, которую записываем, с помощью конкатенации соединяем строку и PHP_EOL — это перенос строки

Третья строка — закрываем файл.

Более практический пример

$f = fopen('ban.txt', 'a');
fwrite($f, ip2long($_SERVER['REMOTE_ADDR']). PHP_EOL);
fclose($f);

Это будет примитивный пример чтобы вы понимали, как можно использовать на практике. К примеру, после определенных действий человека на вашем сайте вы хотите отправлять его ip адрес в банлист. Сам лист это, к примеру, файл ban.txt, в котором с каждой новой строки ip-адреса заблокированных пользователей. Перенос строки делается за счет константы PHP_EOL, которая, по сути, и представляет собой переход на новую строку (для txt-файлов).

IP адрес хранится в глобальном массиве $_SERVER под ключом REMOTE_ADDR. При этом в файл записывается не сам IP, а результат его преобразования в число, само преобразование выполняет функция ip2long.

Соответственно, если такое число будет записано в файл, то потом вы можете приказать скрипту получить IP человека и проработать его через ip2long, после чего построчно пройти файл и проверить, есть ли там совпадение. Если есть, то не пускаем человека на сайт, ну типо бан.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий