Перейти до вмісту

PHP/Робота з файлами та модулями

Матеріал з Вікіпідручника
< PHP

Файли

[ред.]

Файли часто використовуються як для збереження певних тимчасових даних (замовлення покупця тощо) так і цілої бази даних. Хоча для другого випадку краще використовувати систему управління базами даних MySQL, яка спрощує роботу з великою кількістю даних, але коли такої можливості немає, то використовують файли. Неможливість використання MySQL зачасту постає, коли за кожну базу даних потрібно платити додаткові гроші або ж MySQL взагалі не встановлена. Робота з файлами відбувається практично ідентично як у мові програмування С.

Щоб записати деякі дані в файл, необхідно виконати наступні три дії:

  1. Відкрити файл. Якщо файл не існує, то він може створюватись, або ж виконуватись інші передбачені для цього дії.
  2. Записати дані в файл.
  3. Закрити файл.

Аналогічно, щоб прочитати дані з файлу:

  1. Відкрити файл. Якщо файл неможливо відкрити, то потрібно передбачити дії для цієї ситуації.
  2. Прочитати дані з файлу.
  3. Закрити файл.

Для відкриття файлу можна використати функцію fopen(). Приклад:

$fp=fopen ("myfile.txt", 'w');

Перший параметр – це шлях до файлу. Другий режим читання файлу. Він вказується для того, щоб сервер знав, які права надати програмі. Чи лише читання, без права редагувати, чи запису, чи редагування тощо.

Режими відкриття файлу
Режим Значення
r Режим читання. Відкриває файл для читання, починаючи з початку файлу.
r+ Режим читання. Відкривай файл для читання і запису, починаючи з початку файлу
w Режим запису. Відкривай файл для запису, починаючи з початку файлу. Якщо файл існує, його вміст видаляється. Якщо файл не існує намагається його створити.
w+ Режим запису. Відкриває файл для запису, починаючи з початку файлу. Якщо файл вже існує, його вміст видаляється. Якщо файл не існує пробує його створити.
x Режим обережного запису. Відкриває файл для запису, починаючи з початку файлу. Якщо файл вже існує, він не відкривається, fopen() повертає значення false, а PHP генерує попередження.
x+ Режим обережного запису. Відкриває файл для запису і читання, починаючи з початку файлу. Якщо файл вже існує, він не відкривається, fopen () повертає значення false, a PHP генерує попередження
a Режим дописування. Відкриває файл тільки для дописування (запису) і читання, починаючи з кінця існуючого вмісту, якщо такий є. Якщо файлу не існує, спробує його створити.
a+ Режим допису. Відкриває файл для допису (запису) і читання, починаючи з кінця існуючого змісту, якщо такий є. Якщо файл не існує, пробує його створити.
b Модифікатор, який вказує на роботу (читання і запис) з двійковим файлом; актуальний лише для Windows і в основному використовується вкупі із іншим режимом
t Текстовий режим. Використовується разом з одним із інших режимів. Актуальний лише для Windows. Не рекомендується для використання і використовується лише в деяких випадках.


Прочитати рядки з файлу можна так:

    $file_handle = fopen("names.txt", "r"); // відкриваємо файл names.txt на читання
    while (!feof($file_handle)) { // поки файл не закінчився
        $line = fgets($file_handle); // читаємо рядочок
        if($line) { // щось там з ним робимо
            echo "<li>$line</li>";
        };
    };

далі буде.

Модульність

[ред.]

Можна підставити текст одного php-файлу в інший, командою:

include 'header.php'; // підставляємо файл header.php

Переважно сторінки веб-сайту мають певні частини, які не змінюються при навігації. Наприклад, заголовок сторінки ("шапку", header), низ сторінки та спільне меню. Щоб не писати на кожній сторінці один і той же код, зручніше його помістити в окремому файлі і на кожній веб-сторінці підключати цей код. Крім того, в разі необхідності введенні змін у ці частини веб-сторінок, непотрібно буде вводити зміни на кожній веб-сторінці, достатньо лише відредагувати відповідний файл, наприклад header.php, якщо необхідно змінити верх сторінок.