Работа с файлами — важная задача в программировании, особенно в крупных проектах. Часто удобнее хранить данные в файлах, чем в базе данных, а PHP предоставляет эффективные инструменты для этого.
Работа с файлами: основные функции
Для работы с файлами в PHP используются различные функции. Функция fopen() открывает файл для выполнения различных операций. Второй параметр fopen() определяет режим открытия:
- r: Только для чтения; указатель устанавливается в начало файла.
- r+: Для чтения и записи; указатель устанавливается в начало файла. Запись перезаписывает существующие данные.
- w: Только для записи; указатель устанавливается в начало файла, файл обрезается до нулевой длины. Создает новый файл, если его нет.
- w+: Аналогично w, но позволяет также читать файл.
- a: Только для записи; указатель устанавливается в конец файла. Создает новый файл, если его нет.
- a+: Аналогично a, но позволяет также читать файл.
Третий параметр, t или b, определяет интерпретацию символов новой строки и других специальных символов: t — текстовый режим (стандартный), b — бинарный.
Пример создания и записи в файл:
$file = fopen("a.txt", "a+"); // Открытие файла для записи и чтения, указатель в конце
fwrite($file, "Example\nText\nNext example"); // Запись данных
fclose($file); // Закрытие файла
После выполнения этого кода создается файл a.txt с указанным текстом. Закрытие файла с помощью fclose() освобождает ресурсы и сохраняет данные.
Чтение файлов
Функция fread() читает файл. Она принимает дескриптор файла (возвращается fopen()) и количество символов для чтения. Для построчного чтения используется цикл и проверка на конец файла с помощью feof().
Пример построчного чтения:
$file = fopen("a.txt", "r"); // Открытие файла для чтения
while (!feof($file)) {
$char = fread($file, 1); // Чтение по одному символу
echo $char . "<br>"; // Вывод символа
}
fclose($file); // Закрытие файла
Функция fseek() перемещает указатель в файле. Она принимает дескриптор файла, смещение и точку отсчета смещения (начало файла, текущая позиция или конец).
Упрощенные функции
PHP предоставляет более простые функции:
- file_put_contents(): Запись данных в файл (аналог fopen(), fwrite(), fclose()).
- file_get_contents(): Чтение всего файла и возврат содержимого как строки.
- file_exists(): Проверка существования файла (возвращает true или false).
- filesize(): Возвращает размер файла в байтах.
- rename(): Переименование файла.
- unlink(): Удаление файла.
Примеры использования:
file_put_contents("c.txt", "test test test"); // Запись
echo file_get_contents("c.txt"); // Чтение
echo file_exists("a.txt") ? "1" : "0"; // Проверка существования
echo filesize("c.txt"); // Размер файла
rename("c.txt", "b.txt"); // Переименование
unlink("b.txt"); // Удаление
Рассмотрены основные функции PHP для работы с файлами: низкоуровневые (fopen(), fread(), fwrite(), fclose(), fseek(), feof()) и высокоуровневые (file_put_contents(), file_get_contents(), file_exists(), filesize(), rename(), unlink()). Выбор функций зависит от задачи. Более подробная информация доступна на php.net.