$22.58


$572.95


$11.22


Полезные функции для работы с файловой системой

Эта статья фактически краткий справочник по функциям для работы с файлами.

Описываемые функции редко кто использует, но это не значит, что они бесполезны.

Напротив, они очень даже полезны... Но они описываются далеко не в каждом учебнике по 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);

op endir
Функция открывает заданный каталог и возвращает его идентификатор для работы с ним подобно функции fopen. Синтаксис:
int op endir (string path);

closedir
Функция закрывает манипулятор каталога подобно функции fclose. Синтаксис:
void closedir (int resource_handle);

readdir
Функция возвращает очередной элемент каталога. Синтаксис:
string readdir (int resource_handle);
Пример:

$dp = op endir(«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 - Количество выделенных блоков

 

Интересное

Что моя бабушка говорила...
Закон о возмещении ущерба в случае похищения персональных данных 2007 года получил единодушное согласие сената. Как это часто бывает с нашей законодательной властью, две палаты конгресса —...
Подробнее...
Определение наличия...
По статистике, около 90% пользователей в наши дни пользуются Internet Explorer (5-й или 6-й версией). В этих браузерах Flash, как правило, уже установлен (если же нет, то, при наличии...
Подробнее...
Outlook Express,...
Для этого нужно сохранить в другом месте файлы с нужной корреспонденцией (например, Входящие.dbx и другие с таким же расширением) и гдебы даже и на бумажке. После того как вы переустановите...
Подробнее...
Протоколы интернет
Прародителем сети интернет была сеть ARPANET. Первоначально её разработка финансировалась Управлением перспективного планирования (Advanced Research Projects Agency, или ARPA). Проект стартовал...
Подробнее...
Установка свойств для...
Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так:
Подробнее...
Внимание! Отказ в...
Описание: Уязвимость позволяет удаленному пользователю вызвать отказ в обслуживании приложения.Уязвимость существует из-за ошибки при обработке пакетов, отправленных на порт 48000 UDP/TCP....
Подробнее...
Как обнаружить утечку памяти
При разработке больших приложений, оперирующих большими объемами информации на первое место при отладке встает проблема обнаружения неправильного распределения памяти. Суть проблемы состоит в том,...
Подробнее...
Требования к CMS в эпоху...
По поводу перспектив Веб 2.0 существует множество мнений и часто диаметрально противоположных, однако едва ли кто-либо станет спорить с тем, что эта концепция заметно сказалась на современном...
Подробнее...
Протоколы интернет
Прародителем сети интернет была сеть ARPANET. Первоначально её разработка финансировалась Управлением перспективного планирования (Advanced Research Projects Agency, или ARPA). Проект стартовал...
Подробнее...
Windows Vista - архивация...
В Windows Vista добавлены новые ценные возможности, помогающие избежать потери важной информации. Windows Vista предлагает несколько уровней архивации и восстановления данных, обеспечивающих...
Подробнее...