22.04.2014 Views

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 15. Управление файлами через Web-интерфейс 349<br />

Выход из этого положения очень прост — достаточно написать вот такой код:<br />

chdir($_SERVER["DOCUIffiNT_ROOT"]);<br />

$folder = opendir(getcwd());<br />

Мы уже знаем, что функция getcwd всегда возвращает путь в формате Unix.<br />

Даже если мы работаем под Windows.<br />

Приведенный ранее код может быть использован и для того, чтобы преобразовать<br />

путь вида /uploads/uploads 1/../ к нормальному виду /uploads/. Впоследствии<br />

это нам очень пригодится.<br />

Функция readdir возвращает имя первого файла или папки, встретившегося<br />

в заданной при вызове функции opendir папке, в строковом виде. Единственный<br />

аргумент, который принимает эта функция, — это сохраненный ранее<br />

идентификатор папки, возвращенный функцией opendir.<br />

$file = readdir($folder);<br />

Если вызвать функцию readdir второй раз, она вернет имя второго файла<br />

или папки и т. д. Это значит, что, вызывая ее раз за разом, мы можем получить<br />

имена всех файлов и папок, хранящихся в заданной папке.<br />

$i = 0;<br />

while (($file = readdir($folder) !== false) {<br />

$files[$i] = $file;<br />

Замечание<br />

Посмотрим на условие, которое мы задали для цикла. Дело в том, что теоретически<br />

в какой-либо папке у нас может храниться файл или папка с именем false.<br />

А строка false при вычислении условия будет преобразована в логическое<br />

значение false, и цикл прервется раньше времени. Также заметим, что для<br />

сравнения возвращенного функцией readdir значения с false мы использовали<br />

оператор строгого неравенства ! ==.<br />

После просмотра содержимого папки обязательно нужно вызвать функцию<br />

closedir. Эта функция удаляет из памяти компьютера идентификатор папки,<br />

переданный ей в качестве аргумента. Она не возвращает результата.<br />

closedir($folder);<br />

Очень часто бывает нужно, выполнив просмотр папки, вернуться к началу<br />

и просмотреть ее заново. Для этого достаточно вызвать функцию rewinddir,<br />

передав ей в качестве аргумента идентификатор необходимой папки.<br />

rewinddir($folder);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!