- •Лабораторная работа № 4 Строки и регулярные выражения. Формы.
- •Лабораторная работа № 5 Работа с файлами и каталогами
- •Создание файла
- •Закрытие соединения с файлом
- •Запись данных в файл
- •Чтение данных из файла
- •Работа с каталогами
- •Задания для самостоятельной работы
- •Лабораторная работа № 6 Взаимодействие с сервером
- •Задания для самостоятельной работы
Работа с каталогами
Функции РНР позволяют просматривать содержимое каталогов и перемещаться по ним.
Функция dirname( ) дополняет basename( ) — она извлекает путь из полного имени файла. Синтаксис функции dirname( ):
string dirname (string путь)
Пример использования dirname( ) для извлечения пути из полного имени:
$path = "/usr/locla/phppower/htdocs/index.php";
$file = dirname($path); // $file = "usr/local/phppower/htdocs"
Функция dirname( ) иногда используется в сочетании с переменной $SCRIPT_FILENAME для получения полного пути к сценарию, из которого выполняется команда:
$dir - dirname($SCRIPT_FILENAME);
is_dir( )
Функция is_dir( ) проверяет, является ли файл с заданным именем каталогом:
bool is_dir (string имя_файла)
Функция mkdir( ) создает новый каталог. Синтаксис функции mkdir( ):
int mkdir (string путь, int режим)
Параметр путь определяет путь для создания нового каталога. Необходимо завершить параметр именем нового каталога. Параметр режим определяет разрешения, назначаемые созданному каталогу.
Функция opendir( )
Подобно тому как функция fopen( ) открывает манипулятор для работы с заданным файлом, функция opendir( ) открывает манипулятор для работы с каталогом. Синтаксис функции opendir( ):
int opendir (string путь)
closedir( )
Функция closedir( ) закрывает манипулятор каталога, переданный в качестве параметра. Синтаксис функции closedir( ):
void closedir(int манипулятор_каталога)
readdir( )
Функция readdir( ) возвращает очередной элемент заданного каталога. Синтаксис:
string readdir(int манипулятор_каталога)
С помощью этой функции можно легко вывести список всех файлов и подкаталогов, находящихся в текущем каталоге:
$dh = opendir(' . );
while ($file = readdir($dh)) :
print "$file <br>"; endwhile;
closedir($dh);
chdir( )
Функция chdir( ) осуществляет переход в каталог, заданный параметром. Синтаксис функции chdir( ):
int chdir (string каталог)
Пример 11. Здесь мы переходим в подкаталог book/ и выводим его содержимое:
$newdir = "book";
chdir($newdir) or die("Could not change to directory ($newdir)"); $dh = opendir(' . ');
print "Files:";
while ($file = readdir($dh)) ;
print "$file <br>";
endwhile;
closedir($dh);
rewinddir( )
Функция rewlnddir( ) переводит указатель текущей позиции в начало каталога, открытого функцией opendir( ). Синтаксис функции rewinddir( ):
void rewinddir (int нанипулятор_каталога)
Задания для самостоятельной работы
1. Создать форму для ввода URL-адреса какой-либо веб-страницы. При нажатии кнопки организовать запись исходного кода этой страницы в файл и открытие файла для просмотра результатов (для этого можно использовать функцию exec).
2. Разработать простой счетчик обращений, подсчитывающий количество обращений к странице, в которой он находится. Сценарий написать на основе алгоритма, написанного на псевдокоде:
присвоить переменной $access имя файла, в котором будет храниться значение счетчика;
использовать функцию filе( ) для чтения содержимого $access в массив $visits (префикс @ перед именем функции подавляет возможные ошибки, например, отсутствие файла с заданным именем);
присвоить переменной $current_visitors значение первого (и единственного) элемента массива $visits;
увеличить значение $current_visitors на 1;
открыть файл $access для записи и установить указатель текущей позиции в начало файла;
записать значение $current_visitors в файл $access;
закрыть манипулятор, ссылающийся на файл $access;
3. Создать простую регистрационную форму с вводом имени и пароля. При вводе данных реализовать создание каталога (имя каталога задается случайным образом) для регистрируемого пользователя.
Результаты выполнения сценария PHP:
users.php
Рис. 1. Регистрационная форма
Рис. 2. Информация о пользовательских каталогах