Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PI_lektsii_2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

13.2.2 Запис в файли

Запис в файли здійснюється функціями fputs і fwrite, які абсолютно ідентичні:

   int fputs (int file, string string [, int length])

   int fwrite (int file, string string [, int length])

Перший аргумент – дескриптор файлу, в який здійснюється запис. Другий аргумент є рядком, який повинний бути записаний в файл. Третій необов'язковий аргумент задає кількість символів в рядку, які повинні бути записані. Якщо третій аргумент не вказано, записується весь рядок. У цьому прикладі в файл "file.txt" записується рядок "Hello, world!":

<?

   $ File = fopen ("file.txt", "r +");

   $ Str = "Hello, world!";

   if (! $ file)

       echo ("Помилка відкриття файлу");

     else

       fputs ($ file, $ str);

     fclose ($ file);

?>

13.3 Копіювання, перейменування і видалення файлів

13.3.1 Копіювання

Копіювання файлів здійснюється функцією copy:

   int copy (string file1, string file2)

Функція копіює файл з ім'ям file1 в файл з ім'ям file2. Якщо файл file2 на момент копіювання існував, то він перезаписується.

13.3.2 Перейменування

Перейменування файлу здійснюється за допомогою функції rename:

   int rename (string old, string new)

Ця функція перейменовує файл з ім'ям old в файл з ім'ям new. Функція rename не виконує перейменування файлу, якщо його нове ім'я розташоване в іншій файловій системі.

13.3.3 Видалення

Здійснюється за допомогою функції unlink:

   int unlink (string filename)

13.4 Атрибути файлів

Для отримання додаткової інформації про атрибути файлу ви можете скористатися перерахованими нижче функціями. Функція file_exists перевіряє, чи існує файл і повертає true, якщо файл існує і false в іншому випадку:

   bool file_exists (string filename)

Функція fileatime повертає час останнього звернення до файлу:

   int fileatime (string filename)

Функція filemtime повертає час останньої модифікації вмісту файлу:

   int filemtime (string filename)

Функція file_size повертає розмір файлу в байтах:

   int file_size (string filename)

Функція file_type повертає тип файлу:

 string file_type (string filename)

Рядок, який повертається цією функцією, містить один з наступних типів файлу:

  1. char (спеціальний символьний пристрій);

  2. dir (каталог);

  3. fifo (іменований канал);

  4. link (символічне посилання);

  5. block (спеціальний блоковий пристрій);

  6. file (звичайний файл);

  7. unknown (тип не встановлено).

Оскільки використання функцій, які повертають характеристики файлу, дуже ресурсомісткі, щоб уникнути втрати продуктивності при викликах таких функцій, PHP кешує інформацію про файл. Очистити цей кеш можна з допомогою функції clearstatcache:

<?

clearstatcache();

?>

13.5 Переміщення по файлам

При читанні даних з файлу покажчик поточної позиції переміщується до чергового непрочитаного символу. Існує декілька функцій, з допомогою яких можна керувати положенням цього покажчика.

Установка покажчика поточної позиції в початок файлу здійснюється функцією rewind:

int rewind ( int file)

Аргумент file є дескриптором файлу.

Дізнатися поточне положення вказівника можна за допомогою функції ftell:

int ftell ( int file)

Встановити курсор в будь-яке місце файлу можна, використовуючи функцію fseek:

int fseek ( int file, int offset [, int whence ])

Функція fseek встановлює покажчик файлу на байт із зсувом offset (від початку файлу, від його кінця або від поточної позиції, в залежності від значення параметра whence). Аргумент file є дескриптором файлу. Аргумент whence задає з якого місця відраховується зміщення offset і може приймати одне з наступних значень:

  • SEEK_SET (відраховує від позицію початку файлу);

  • SEEK_CUR (відраховує позицію щодо поточного положення покажчика);

  • SEEK_END (відраховує позицію щодо кінця файлу).

За замовчуванням аргумент whence має значення SEEK_SET.

Дізнатися, чи знаходиться покажчик в кінці файлу, можна за допомогою функції feof:

   int feof (int file)

Якщо покажчик знаходиться в кінці файлу, функція повертає true, в іншому випадку повертається false.

Функцію feof зручно використовувати при читанні файлу:

<?

   $ File = fopen ("file.txt", "r");

   if ($ file)

   {

     while (! feof ($ file))

     {

       $ Str = fgets ($ file);

       echo $ str;

       echo ("<br>");

     }

     fclose ($ file);

   }

   else

       echo ("Помилка відкриття файлу");

   ?>

За допомогою цієї функції зручно також визначати кількість рядків у файлі:

<?

   $ File = fopen ("file.txt", "r");

   if ($ file)

   {

     $ Counter = 0;

     while (! feof ($ file))

     {

       $ Str = fgets ($ file);

       $ Counter ++;

     }

     echo ($ counter);

     fclose ($ file);

   }

   else

       echo ("Помилка відкриття файлу");

   ?>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]