базовый курс

ГРУППА КУРСА

Работа с файлом

В данной теме рассматриваются основные функции для работы с файлами в PHP.

Функция copy() копирует файл. Возвращает true при успешном копировании.

copy (адрес файла, адрес нового файла, контекст)

Параметры:

адрес файла - абсолютный или относительный адрес копируемого файла

адрес нового файла - абсолютный или относительный адрес нового файла

контекст - позволяет указать ресурс контекста

Так как в функции указывается адрес нового файла, то она позволяет сразу поместить его в нужную папку и задать ему новое имя. Скопируем файл myfile.txt в ту папку, где он расположен:

+
1
2
<?php
header('Content-type: text/html; charset=utf-8');
3
copy('myfile.txt', 'newfile.txt');

Функция rename() меняет адрес файла. Таким образом она может решить две разные задачи: переименовать файл и переместить его в другое место.

rename (старый адрес, новый адрес, контекст)

Параметры:

старый адрес - может быть абсолютным или относительным

новый адрес - также может быть абсолютным или относительным

контекст - позволяет указать ресурс контекста

Контекст можно указывать, начиная с версии PHP 5.

Переименуем новый файл:

4
rename('newfile.txt', 'takefile.txt');

Функция unlink() удаляет файл. Возвращает true при успешном удалении.

unlinc (адрес файла, контекст)

Пример:

5
unlink('myfile.txt');

Для правильной работы с файлом иногда нужно получить о нём какую-то информацию. В PHP есть несколько функций, предоставляющих различную информацию о файле. Они перечислены в следующей таблице:

Функция Значение
file_exists() Проверяет, существует ли файл или каталог
is_readable() Проверяет, существует ли файл или каталог и доступен ли для чтения
is_writable() Проверяет, существует ли файл или каталог и доступен ли для записи
is_executable() Проверяет, существует ли файл и является ли исполняемым
is_file() Возвращает true, если файл существует и действительно является файлом, а не чем-то другим
is_dir() Возвращает true, если файл существует и является каталогом
fileatime() Возвращает время, когда производился последний доступ к файлу. Для некоторых файлов данная возможность может быть отключена.
filectime() Возвращает время любого последнего изменения файла, в том числе, прав доступа, владельца и других данных
filemtime() Возвращает время последней записи в файл
filesize() Определяет размер файла в байтах
filetype() Определяет тип файла
stat() Возвращает различную информацию о файле в виде массива. Заменяет некоторые функции из этой таблицы, если нужна сразу вся эта информация
fstat() Выполняет те же действия, что и предыдущая функция, но для работы функции файл должен быть открыт. В качестве параметра функции используется дескрептор файла.
linkinfo() Возвращает информацию о ссылке на файл

При выполнении описаных функций, их результат кэшируется. Поэтому, если какая-то функция выполняется нескользо раз для одного и того же файла, то при этом нужно использовать функцию clearstatcache(), которая очищает кэшированную информацию.