Полезные функции для работы с файловой системой
Полезные функции для работы с файловой системой
Эта
статья фактически краткий справочник по функциям для работы с файлами.
Описываемые функции редко кто использует, но это не значит, что они бесполезны.
Напротив, они очень даже полезны... Но они описываются далеко не в каждом
учебнике по PHP.
file_exists
Функция
file_exists() проверяет, существует ли файл в локальной файловой системе. Если
файл существует, то функция возвращает истину, а если нет, то ложь. Пример:
if
(! file_exists("somefile.php") ) { echo "Файл не существует!; }
is_file
Эта
функия по сути делает ту же работу, что и file_exists, но она более надежна,
т.к. проверяет не только существование заданного файла, но и файл ли это (вдруг
дирректория?), и можно ли производить с ним операции записи/чтения. Пример:
if
(! is_file("somefile.php") ) {echo "Это неправильный файл, либо
в него нельзя писать/читать"; }
else
{echo "Все ok, это нормальный файл";}
filesize
Как
можно догадаться из названия, эта функция нужна для определения размера файла
(в локальной файловой системе). Она возвращает размер файла в байтах или
возвращает FALSE, если возникла ошибка. Пример:
$fsize =
filesize("somefile.txt");
echo "Размер файла $fsize";
is_writeable
Эта
функция проверяет, существует ли заданный файл и можно ли в него писать.
Пример:
if
(is_writeable("somefile.txt") ) {echo "В этот файл можно
писать";}
else
{echo "Файла не существует, либо в него нельзя писать";}
is_readable
Эта
функция позволяет убедиться, что файл доступен для чтения (если он существует).
if
(is_readable("somefile.txt") ) {echo "Этот файл доступен для
чтения";}
else
{echo "Файла не существует, либо его нельзя прочитать с текущими
правами";}
readfile
В
большинстве скриптов, которые я видел, чтение из файла осуществлялось с помощью
функции fgets либо fread. При этом нужно было перед этим открыть а после
закрыть. Но есть функция readfile, которая позволяет сэкономить пару
инструкций. Она читает содержимое файла и перенаправляет в стандартный поток
вывода (обычно браузер). Пример:
readfile("somefile.txt");
Все
содержимое файла будет выведено в файле.
basename
Функция
выделяет имя файла из переданного ей полного пути. Пример:
$filename =
basename("/usr/brutus/file.txt");
echo $filename; //будет выведено "file.txt"
getlastmod
Функция
возвращает дату последней модификации файла, из которого эта функция
вызывается. Пример:
echo
"Последнее обновление: ".date("d.m.Y @ H:i:s", getlastmod()
);
Работа
с каталогами
is_dir
Функция
проверяет, является ли заданный файл каталогом. Синтаксис:
bool is_dir (string filename);
Возвращает
TRUE если это каталог и FALSE если это файл
dirname
Эта
функция извлекает путь до полного имени файла, подобно функции basename.
Синтаксис:
string
dirname ($string path);
opendir
Функция
открывает заданный каталог и возвращает его идентификатор для работы с ним
подобно функции fopen. Синтаксис:
int
opendir (string path);
closedir
Функция
закрывает манипулятор каталога подобно функции fclose. Синтаксис:
void closedir (int resource_handle);
readdir
Функция
возвращает очередной элемент каталога. Синтаксис:
string readdir (int
resource_handle);
Пример:
$dp = opendir('somedir');
while ($file = readdir($dp) ) {
echo
$file."
";
}
closedir($dp);
rewinddir
Функция
переводит указатель текущей позиции в начало каталога. К примеру функция
readdir будет читать каталог с начала. Синтаксис:
void
rewinddir (int resource_handle);
chdir
Функция
осуществляет переход в заданный каталог. Синтаксис:
int chdir(string path);
mkdir
Функция
аналогична однименной команде Unix - она создает каталог с заданным именем.
Синтаксис:
int
mkdir (string path, int mode);
Mode
определяет разрешения, которые будут присвоены каталогу после создания.
Функции
для работы с правами файла
Функции,
которые будут описаны ниже, работают только в UNIX like системах.
filegroup
Эта
функция возвращает идентификатор группы-владельца заданного файла. Синтаксис:
int
filegroup (string filename);
fileperms
Функция
возвращает разрешения (permissions) файла или FALSE в случае ошибки. Синтаксис:
int
fileperm (string filename);
fileowner
Функция
возвращает идентификатор владельца заданного файла. Синтаксис:
int fileowner (string filename);
chgrp
Функция
пытается сменить группу-владельца данного файла. Синтаксис
int chgrp (string filename, mixed
group);
chmod
Функция
пытается изменить разрешения файла. Синтаксис:
int chmod (string filename, int
permissions);
Замечание:
параметр permissions должен состоять из четырех целых чисел, напрмер 0776.
chown
Функция
chown пытается сменить владельца файла. Синтаксис:
int chown (string filename, mixed
user);
stat
Эта
функция возвращает массив с подробной информацией о файле. Синтаксис:
array stat (string filename);
Элементы,
возвращаемые функцией:
0
- Устройство
1
- Индексный узел (inode)
2
- Режим защиты индексного угла
3
- Количество ссылок
4
- Идентификатор владельца
5
- Идентификатор группы владельца
6
- Тип устройства индексного узла
7
- Размер в байтах
8
- Время последнего обращения к файлу
9
- Время последней модификации файла
10
- Время последнего изменения
11
- Размер блока при выводе/вводе в файловой системе
12
- Количество выделенных блоков
Список литературы
Для
подготовки данной работы были использованы материалы с сайта http://www.soch.imperium.by