$28.32


$295.68


$37.19


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

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

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

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

 

Интересное

Введение в технологию SSI
Если вы первый раз слышите о SSI — Server Side Includes, то эта статья как раз для вас. Я не претендую на подробное изложение материала — для этого есть специальная литература.Так вот, на...
Подробнее...
Увеличиваем быстродействие...
Однако, по умолчанию, вне зависимости от установленного объема памяти, Windows XP нерационально использует дополнительный объем памяти, что значительно ограничивает производительность системы в...
Подробнее...
10 советов по защите Wi-Fi...
Тема безопасности Wi-Fi соединения в наши дни очень популярна. На ряде форумов, ведутся энергичные дискуссии на предмет «лучшего решения». Один из наиболее часто обсуждаемых аспектов — большое...
Подробнее...
Какой софт нужен для...
Что нужно настоящему веб-мастеру для полноценной работы? Совсем немного. В этой статье я опишу весь soft, который нужен для нормальной работы web-мастеров.1) Правильный выбор HTML-редактора.В наше...
Подробнее...
Какие типы данных...
Я не буду описывать подробно все изобилие типов mysql. Я уверен, что это лишнее.Дело в том, что в mysql-е числовые и текстовые группы типов очень многочисленны.Отличаются типы в этих группах...
Подробнее...
Я работаю с Windows Vista....
Шаг за шагом знакомимся с Windows Vista. Сегодня — подробно о том, сколько и какого «железа» требуется для работы с разными версиями новой операционной системы.
Подробнее...
Как через форму положить...
Один из частых вопросов, это как через форму положить файл на сервер. Делается это весьма легко, всего около 10 строк кода и php скрипт готов. И при этом ничего кроме php вам не понадобится.Для...
Подробнее...
Собираем Apache + PHP +...
Итак попробуем все это собрать. Для начала нам понадобиться apache, php, sablot, xpat, iconv. Последние три представляют собой программы для обработки XML/XSLT файлов.
Подробнее...
Дата по русски
Скрипт, который мы сейчас рассмотрим, позволяет вывести на экранпосетителя дату в формате русского языка. Сразу предупреждаю,что реализация алгоритма этой задачи не самая лучшая.Но –...
Подробнее...
10 способов заставить...
Операционная система Windows Vista отличается повышенной функциональностью и безопасностью, а также имеет красивый стиль оформления пользовательского интерфейса Aero transparency, функцию...
Подробнее...