Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 $filename — обычный файл. 
bool is_dir(string $filename) 
Возвращает true, если $filename — каталог. 
bool is_link(string $filename) 
Возвращает true, если $filename — символическая ссылка. 

Глава 15. Работа с файлами 255 
Определение возможности доступа 
В PHP есть еще несколько функций, начинающихся с префикса is_. Они довольно 
интеллектуальны, поэтому рекомендуется использовать их перед "опасными" откры- 
тиями файлов. 
bool is_readable(string $filename) 
Возвращает true, если файл может быть открыт для чтения. 
bool is_writeable(string $filename) 
Возвращает true, если в файл можно писать. 
bool is_executable(string $filename) 
Возвращает true, если файл — исполняемый. 
Определение параметров файла 
array stat(string $filename) 
Функция собирает вместе всю информацию, выдаваемую операционной системой для 
указанного файла, и возвращает ее в виде массива. Этот массив всегда содержит 
сле- 
дующие элементы с указанными ключами: 
0 — устройство; 
1 — номер узла inode; 
2 — атрибуты защиты файла; 
3 — число синонимов ("жестких" ссылок) файла; 
4 — идентификатор uid владельца; 
5 — идентификатор gid группы; 
6 — тип устройства; 
7 — размер файла в байтах; 
8 — время последнего доступа в секундах, прошедших с 1 января 1970 года; 
9 — время последней модификации содержимого файла; 
10 — время последнего изменения атрибутов файла; 
11 — размер блока; 
12 — число занятых блоков. 
Как мы видим, в этот массив помещается информация, которая доступна в системах 
Unix. Под Windows многие поля могут быть пусты (например, в ней у файлов нет 
владельца, а значит, нет и идентификатора владельца файла и группы). Обычно они 

бывают совершенно бесполезны при написании сценариев. 
Если $filename задает не имя файла, а имя символической ссылки, то все-таки бу- 

дет возвращена информация о том файле, на который ссылается эта ссылка (а не о 

Часть IV. Стандартные функции PHP 256 
ссылке). Для получения информации о ссылке можно воспользоваться вызовом 
lstat(), имеющим точно такой же синтаксис, что и stat(). 
Специализированные функции 
Для того чтобы каждый раз не возиться с вызовом stat() и разбором выданного 
массива, разработчики PHP предусмотрели несколько простых функций, которые сра- 

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

ствует, эта функция возвратит false. 
int fileatime(string $filename) 
Возвращает время последнего доступа (access) к файлу (например, на чтение). 
Время 
выражается в количестве секунд, прошедших с 1 января 1970 го-да. Если файл не 
обнаружен, возвращает false. 
int filemtime(string $filename) 
Возвращает время последнего изменения файла или false в случае отсутствия фай- 
ла. 
int filectime(string $filename) 
Возвращает время создания файла. 
int filesize(string $filename) 
Возвращает размер файла в байтах или false, если файла не существует. 
int touch(string $filename [, int $timestamp]) 
Устанавливает время модификации указанного файла $filename равным 
$timestamp (в секундах, прошедших с 1 января 1970 года). Если второй параметр 
не 
указан, то подразумевается текущее время. В случае ошибки возвращается false. 
Если файла с указанным именем не существует, он создается пустым. 
Функции для работы 
с именами файлов 
Нам довольно часто приходится манипулировать с именами файлов. Например, 
"прицепить" к имени слева путь к какому-то каталогу или, наоборот, из полной 
спе- 
цификации файла выделить его непосредственное имя. В связи с этим в PHP введены 

несколько функций для работы с именами файлов. 
string basename(string $path) 
Выделяет основное имя файла из пути $path. Вот несколько примеров: 

Глава 15. Работа с файлами 257 
echo basename("/home/somebody/somefile.txt"); // выводит "somefile.txt" 
echo basename("/"); // ничего не выводит 
echo basename("/."); // выводит "." 
echo basename("/./"); // также выводит "." 
Обратите внимание на то, что функция basename() (да и все последующие) не про- 
веряет существование файла. Она просто берет часть строки после самого правого 
слэша и возвращает ее. С облегчением можно также сказать, что функция 
basename() правильно обрабат
 
<<-[Весь Текст]
Страница: из 287
 <<-