Функции readdir() и scandiro не делают различий между содержимым каталога, возвращая все элементы каталога, будь то файлы или подкаталоги. В первую очередь может стоять задача в исключении каталогов "." и ".." из списка содержимого каталога. Этого можно добиться при помощи скрипта из листинга 6.19.
Для каждой из групп права доступа задаются восьмеричным числом. При этом праву чтения соответствует цифра 4, праву записи - 2, а исполнению - 1. Общие права для групп задаются суммой этих чисел, так значение 6 (4 + 2) обеспечивает возможность чтения и записи, а значение 7 (4 + 2 + 1) предоставляет полный доступ к файлу или каталогу.
Для файлов наиболее приемлемые права доступа таковы: чтение и запись для владельца и чтение для всех остальных- 644. Для того чтобы иметь возможность "заходить" в каталог, для него необходимо выставить права доступа и на исполнение, поэтому для каталогов следует выставлять 755.
Используя функции для работы с файлами, можно организовать редактирование файлов на сервере при помощи Web-интерфейса, код которого представлен в листинге 6.26.
Помимо текстовой области content, форма содержит скрытое поле filename, через которое передается имя файла. После редактирования и нажатия кнопки второй формы second данные повторно отправляются скрипту edit.plip, но уже методом POST. В начале скрипта размещен обработчик, который в том случае, если элемент $_POST ['content'] принимает не пустое значение, переписывает содержимое редактируемого файла. Для корректного поведения скрипта в конце обработчика имя файла из суперглобального массива $_POST переписывается в суперглобальный массив $_GET. Функция f open о предваряется знаком @, который подавляет вывод предупреждений в окно браузера, в том случае если функция не может найти текстовый файл.