Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в Веб программирование.doc
Скачиваний:
81
Добавлен:
07.11.2018
Размер:
4.42 Mб
Скачать

Работа с каталогами в рнр

РНР предоставляет набор функций для работы с каталогами, а именно — функции для создания, удаления и вывода оглавления каталогов. Для этого в РНР имеются функции opendir() и closedir (), аналогичные функциям fopen () и f close () для файлов. Функция opendir () имеет следующий синтаксис:

$dir_reference =opendir($dir_path)

где $dir_path представляет собой путь к открываемому каталогу. Функция opendir () выведет сообщение об ошибке, если указанный каталог не существует. При успешном завершении функция opendir () возвратит дескриптор каталога. Функция closedir() принимает единственный параметр - дескриптор каталога из вызова opendir ().

После открытия каталога, каждый его элемент можно прочитать с помощью функции readdir (): readdir($dir_reference), где $dir_reference — это значение, которое возвращает вызов функции opendir (). При успешном завершении эта функция возвращает строку, содержащую имя одного из файлов каталога, связанного с параметром $dir_reference. Каждый последующий вызов функции readdir () возвращает очередной файл каталога (в порядке, в котором они хранятся в файловой системе), пока весь список файлов не будет исчерпан. Если файлов в каталоге больше нет, или произошла какая-нибудь ошибка, readdir () вернет значение false. Использование функций $OpenDir=opendir($dir) и readdir($OpenDir). Выведем содержимое папки c:/windows

<?

$dir="c:/windows"; # папка, которую нужно прочитать

if($OpenDir=opendir($dir))

{

while(($file=readdir($OpenDir)) !== false)

if($file != "." && $file != "..")

echo $file."<br>";

}

else echo "нет прав";

?>

Для создания каталога можно использовать функцию mkdir(name), для удаления – rmdir(), для изменения – chdir(). Чтение содержимого каталога:

<?php

$dr = @opendir(' /tmp/') ;

if(!$dr) {

echo "Ошибка при открытии каталога /tmp/!<BR>"; exit;

1

while (($filesf] = readdir($dr)) !== false);

print_r(Sfiles);

?>

Поскольку функция readdir () возвращает каждый раз новое имя файла, то каждый файл заданного каталога в отдельности можно просмотреть только однажды. Для тех случаев, когда необходимо повторно просмотреть содержимое каталога, РНР предоставляет функцию, которая позволяет "перемотать" оглавление каталога в исходное состояние, которое он имел перед первым вызовом функции readdir (). Эта функция, называемая rewinddir (), имеет следующий синтаксис:

rewinddir($dir_reference)

Хотя функция opendir () и другие родственные ей функции имеют свои преимущества, особенно полезным является альтернативный метод получения списка файлов, удовлетворяющих определенному критерию (или шаблону). Этой цели служит функцияglob ():

glob($filemask [, flags])

Здесь $filemask — это строка, содержащая шаблон поиска (например, *.txt), a flags представляет одну или несколько констант, перечисленных ниже. Значения flags: GL0B_MARK -Добавлять слэш к именам, которые являются каталогами; GL0B_N0S0RT -Не сортировать возвращаемый список файлов; GL0B_N0CHECK -Если нет файлов, совпадающих с шаблоном, вернуть шаблон вместо пустого массива; GL0B_0NLYDIR -Вернуть только каталоги, совпадающие с шаблоном.

Использование функции glob ():

<?php

Sdirectories = glob("/tmp/*", GL0B_0NLYDIR);

$complete = glob("/tmp/*");

Sfiles = array_diff(Sdirectories, $complete);

echo "Каталоги в /tmp/<BR>";

foreach(Sdirectories as $val) ( echo "$val<BR>\n";)

echo "<BR><&aunbi в /tmp/<BR>";

foreach($files as Sval) ( echo "$val<BR>\n";)

?>

PHP и MySQL

MySQL – это многопоточный быстрый сервер баз данных, разработанный компанией TcX. MySQL является идеальным решением для малых и средних приложений, созданных на PHP и работает на множестве платформ. MySQL поддерживает стандарт языка запросов SQL и имеет множество расширений к стандарту. MySql сервер загружается автоматически вместе с web – сервером и постоянно работает на компьютере – сервере. MySQL поддерживает трехуровневую структуру: базы данных, таблицы, записи и может работать сразу с несколькими базами данных: