UA RU

Як працювати з файлами у PHP: Повний гайд з CRUD-операцій (Створення, Читання, Оновлення, Видалення)

21.10.2026 SebWeo

Під час розробки веб-додатків на PHP часто виникає потреба взаємодіяти не лише з базами даних (MySQL, PostgreSQL), а й безпосередньо з файловою системою сервера. Збереження логів, кешування даних, генерація тимчасових звітів, завантаження аватарів чи обробка конфігураційних файлів вимагають знання базових операцій із файлами.

У сучасній веб-розробці на Vanilla PHP (не фреймворках) цей процес максимально спрощений завдяки високорівневим вбудованим функціям. Розглянемо класичний цикл CRUD (Create, Read, Update, Delete) для роботи з текстовими файлами.

 

1. Огляд вбудованих функцій PHP для роботи з файлами

Залежно від складності завдання, PHP пропонує два основні підходи до роботи з файлами:

  • Високорівневі функції (One-liner functions): Такі як file_put_contents() та file_get_contents(). Вони ідеально підходять для більшості повсякденних задач, оскільки самостійно відкривають, читають/записують і закривають файл за один виклик.
  • Низькорівневі потоки (File streams): Функції fopen(), fread(), fwrite() та fclose(). Використовуються для роботи з великими файлами, коли потрібно контролювати буферизацію пам’яті або застосовувати паралельне блокування.

 

2. Порівняльна таблиця функцій файлової системи

Операція (CRUD) Основні функції PHP Опис та особливості використання
Create (Створення) file_put_contents(), fopen($file, 'w') Створює новий файл (або перезаписує існуючий) і записує туди дані.
Read (Читання) file_get_contents(), readfile(), file() Зчитує весь вміст файлу в рядок або масив рядків.
Update (Оновлення) file_put_contents(..., FILE_APPEND), fopen($file, 'a') Додає новий вміст у кінець існуючого файлу без його стирання.
Delete (Видалення) unlink() Повністю видаляє файл із файлової системи сервера.

 

3. Практичні приклади коду (Vanilla PHP)

 

Крок 1: Створення та запис у файл (Create)

Функція file_put_contents – це найпростіший спосіб створити файл і записати в нього текст:

<?php
$filename = 'log.txt';
$data = "Перший рядок логу: система запущена успішно.\n";

// Створює файл (якщо його не було) та записує дані
$result = file_put_contents($filename, $data);

if ($result !== false) {
    echo "Файл успішно створено, записано байтів: $result";
} else {
    echo "Помилка запису файлу.";
}
?>

 

Крок 2: Читання файлу (Read)

Для отримання вмісту файлу використовується file_get_contents():

<?php
$filename = 'log.txt';

if (file_exists($filename)) {
    // Зчитуємо весь вміст у змінну
    $content = file_get_contents($filename);
    echo "<pre>" . htmlspecialchars($content) . "</pre>";
} else {
    echo "Файл не знайдено.";
}
?>

 

Крок 3: Оновлення / Додавання даних (Update)

Щоб не затерти попередні дані, а додати нову інформацію в кінець файлу, використовуйте прапорець FILE_APPEND:

<?php
$filename = 'log.txt';
$newLogEntry = "Другий рядок: користувач виконав авторизацію.\n";

// Додаємо дані в кінець файлу
file_put_contents($filename, $newLogEntry, FILE_APPEND);

echo "Дані успішно оновлено!";
?>

 

Крок 4: Видалення файлу (Delete)

Для знищення файлу використовується функція unlink():

<?php
$filename = 'log.txt';

if (file_exists($filename)) {
    if (unlink($filename)) {
        echo "Файл успішно видалено.";
    } else {
        echo "Не вдалося видалити файл (перевірте права доступу).";
    }
} else {
    echo "Файлу вже немає.";
}
?>

 

Технічна порада розробника: Працюючи з файлами на сервері (особливо при високому навантаженні або написанні власних систем логування), завжди дбайте про безпеку та конкурентність. По-перше, перевіряйте права на запис через is_writable(). По-друге, якщо кілька процесів одночасно пишуть у той самий файл, використовуйте низькорівневі потоки разом із блокуванням flock($fp, LOCK_EX), щоб запобігти пошкодженню даних (race conditions).

 

Підсумок: Робота з файлами у PHP – це потужний інструмент для вирішення локальних завдань бекенду. Використовуйте функції file_put_contents та file_get_contents для швидких операцій, не забувайте перевіряти існування файлів через file_exists() і завжди контролюйте права доступу (chmod) на рівні операційної системи Linux.

 

Категорії:

Теги:

Схожі статті

Коментарі

Коментарів ще немає.

Залишити коментар на основній сторінці