Эта функция является частью группы, состоящей из трех функций, которые меняют аналогичную информацию о файлах. Двумя другими функциями являются chgrp и chown. С помощью функции fileperms можно получить информацию о текущих режимах файла.

Листинг 9.3. Функция chmod

<?php /*
** разрешить всем чтение из файла и запись в файл ** при работе PHP под управлением ОС Unix
*/
if(chmod("data.txt", 0666))
{
print("изменение режима прошло успешно");
}
else
{
print(" изменение режима невозможно");
}

 ?> 

boolean chown(string filename, string user)
Владельца указанного файла можно изменить с помощью функции chown (листинг 9.4). При успешном исходе возвращается значение TRUE, в противном случае - значение FALSE. Под управлением ОС Windows эта функция ничего не делает и всегда возвращает значение TRUE. Эта функция аналогична функциям chgrp и chmod. Узнать текущего владельца файла можно с помощью функции fileowner.

| Листинг 9.4. Функция chown_
<?php
/*
** изменить владельца на владельца leon
*/
if(chown("data.txt", "leon"))
{
print(" владелец изменен");
}
else
{
print(" владельца изменить невозможно ");
}
?>

boolean chroot(string path)
Функция chroot меняет корневой каталог на каталог, заданный параметром path, что закрывает доступ к любому каталогу, находящемуся выше нового корневого каталога. Это изменение имеет силу до завершения серверного процесса, а значит, такая возможность может оказаться небезопасной при работе PHP в качестве модуля Apache. Эта функция отсутствует в ОС Windows.
closedir(integer directory_handle)
Функция closedir (листинг 9.5) закрывает каталог после того, как он был открыт с помощью функции opendir. PHP закроет соединение с каталогом после завершения работы сценария, таким образом, применение этой функции необязательно.

| Листинг 9.5. Оператор closedir_
<?php
// распечатать текущий каталог в несортированном виде
print("<ul>n");
// открыть каталог
$myDirectory = opendir("."),-
// получить каталоги
while(FALSE !== ($entryName = readdir($myDirectory)))
{
print("<li>$entryName</li>n");
}
// закрыть каталог
closedir($myDirectory);
print("</ul>n");

 ?> 
boolean copy(string source, string destination)
Функция copy (листинг 9.6) копирует файл, заданный аргументом source, в файл, определенный аргументом destination, и в результате получаются два отдельных идентичных файла. Эта функция позволяет делать ссылку на файл, но в таком случае необходимо пользоваться функцией link или symlink. Для переноса файла в другой каталог можно прибегнуть к функции rename. Эта функция допускает задание URL в обоих аргументах.

| Листинг 9.6. Функция copy_
<?php
if(copy("data.txt", "/tmp/data.txt"))
{
print("data.txt скопирован в /tmp");
}
else
{
print("data.txt невозможно скопировать");
}
?>

float disk_free_space(string path)
Функция disk_free_space (листинг 9.7) возвращает количество свободных байтов для каталога по указанному пути.

| Листинг 9.7. Функция disk_free_space_
<?php
$total = disk_total_space("/"); $free = disk_free_space("/");
$ratio = sprintf("%.2f", $free/$total*100.00);
print("Испoльзoваниe диска: $ratio% свободно ($free/$total)");
?>

float disk_total_space(string path)
Эта функция возвращает объем дискового пространства для каталога по заданному пути.
object dir(string directory)
Функция dir (листинг 9.8) создает объект каталога, который будет использоваться в качестве альтернативы таких функций, как opendir и closedir. Возвращенный объект имеет два свойства: handle и path. Свойство handle может использоваться с такими функциями каталогов, как readdir, как если бы они были созданы функцией opendir. Свойство path является строкой, предназначенной для создания объекта каталога. Объект имеет три метода: read, rewind и close, которые полностью аналогичны функциям readdir, rewinddir и closedir. 

Листинг 9.8. Функция dir

<?php
// распечатать текущий каталог в несортированном виде
print("<ul>n");
// открыть каталог
$myDirectory = dir(".");
// прочитать записи
while(FALSE !== ($entryName = $myDirectory->read()))
{
print("<li>$entryName</li>n");
}
// закрыть каталог
$myDirectory->close();
print("</ul>n");
?>