Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
Поиск по сайту

 
 

   Интернет технологии -> PHP -> Полезные функции для работы с файловой системой


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

Brutus aka Осипов Алексей, coding.wp-club.net


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



 
 


 

загрузка...

Новости ИТ
17.05.2012  Zalman планирует представить на Computex пять процессорных кулеров серии CNPS
17.05.2012  Virgin Mobile USA начала продажи смартфона LG Optimus Elite
17.05.2012  ROCCAT начала продажи бюджетной игровой мышки Savu
17.05.2012  Securify анонсировала выпуск в США Wi-Fi маршрутизатора Almond с цветным тачскрином
17.05.2012  Названа цена смартфона LG Optimus LTE II с 2 ГБ оперативной памяти
17.05.2012  Sony анонсировала поставки камеры SLT-A37 и объектива SAL18135
17.05.2012  Стали известны спецификации и цена процессора Intel Core i5-3210M
17.05.2012  В Сети появились концептуальные изображения Apple iPhone 5
17.05.2012  Мышь Razer Ouroboros «засветилась» на сайте FCC
17.05.2012  Sony анонсировала выпуск объектива SEL18200LE E18-200mm F3.5-6.3 OSS LE
17.05.2012  Беспроводной маршрутизатор PROLiNK WNR1012 может играть роль мобильной точки доступа
17.05.2012  Внешний оптический привод Buffalo BRXL-PC6VU2 поддерживает чтение и запись дисков BDXL
17.05.2012  Представлена беззеркальная камера начального уровня Sony NEX-F3
17.05.2012  Galaxy выпускает видеокарты серии GeForce GT 600, включая модель GeForce GT 610 с пассивным охлаждением
17.05.2012  QNAP представляет свои первые шестнадцатидисковые сетевые хранилища
17.05.2012  NVIDIA представила первый в мире виртуализированный GPU для ускорения облачной графики
17.05.2012  Для снижения цены кулера Alpenfцhn Matterhorn Pure Edition производитель отказался от никелирования
17.05.2012  По подсчетам Gartner, продажи сотовых телефонов уменьшились на 2%, лидером рынка является Samsung
17.05.2012  ADATA начинает продажи двухканальных наборов модулей памяти XPG Xtreme DDR3-2133X
17.05.2012  Портативный монитор PROLiNK PRO1301WE питается от порта USB
16.05.2012  AOC начала продажи 22-дюймового LED-монитора e2219P2
16.05.2012  Palit представила три видеокарты моделей GeForce GT 630, GeForce GT 620 и GeForce GT 610
16.05.2012  Смартфон LG Optimus 4X HD появится в Европе уже в июне
16.05.2012  Lenovo планирует вывести на рынок суперлегкий ультрабук ThinkPad X1 Carbon
16.05.2012  Toshiba уже в этом месяце начнет продажи в Японии четырех планшетников линейки Regza
16.05.2012  Xilence Technology начала продажи 750-Вт и 850-Вт блоков питания серии XQ
16.05.2012  Zotac готовит к выходу высококачественную и производительную видеокарту модели GeForce GTX 670 Extreme
16.05.2012  Google готовит пять смартфонов Nexus?
16.05.2012  Nokia показала двухсимные телефоны для развивающихся стран
16.05.2012  AMD анонсировала второе поколение APU Trinity

 
Advertisment



 
Интересное в сети

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100