ТОП PHP скрипт сегодня: Best Poll

Вы Тут:

Главная ›› Книги ›› PHP 5.0 для чайников ›› Функции readdir() и scandir()

Чтение каталогов

После того как мы получили дескриптор, можно использовать его для просмотра содержимого каталога или, по-другому, его чтения (листинг 11.17).

Листинг 11.17. Чтение каталога

<html>
<head>
<title> Чтение каталога </title>
</head>
<body>
<?php
// открытие каталога
$dir_pointer = opendir(".");

// чтение каталога
while (($res = readdir($dir_pointer))!==FALSE)
{
  // вывод имен файлов и папок
  echo $res."<br>";
}

// закрытие каталога
closedir($dir_pointer);
?>
</body>
</html>

В этом примере используется функция readdir(). Она принимает дескриптор каталога, возвращает строку с именем файла (включая расширение) или подкаталога. При последующих вызовах мы будем получать другие имена до тех пор, пока все элементы каталога не будут перебраны. В этом случае функция возвратит значение FALSE. Порядок вывода будет зависеть от файловой системы.

Обратите внимание, что в цикле while мы использовали оператор !== (операнды не эквивалентны), а не != (операнды не равны). Делается это по следующей причине. Допустим, что среди имен файлов и подкаталогов имеется такое: 0. В этом случае при использовании оператора != выполнение цикла прекратилось бы раньше времени.

Однако разработчики РНР посчитали, что данный способ чтения каталогов является громоздким. Поэтому в пятой версии появляется новая функция scandir(). Она принимает дескриптор каталога и возвращает массив, элементы которого содержат имена файлов и подкаталогов (листинг 11.18).

Листинг 11.18. Вывод содержимого каталога

<html>
<head>
<title> Вывод содержимого каталога </title>
</head>
<body>
<pre>
<?php

// родительский каталог
$dir = "..";
$arr = scandir($dir);

// вывод массива
print_r($arr);
?>
</pre>
</body>
</html>

Вывод содержимого каталога

Сортировка массива производится в алфавитном порядке по возрастанию. Однако имеется возможность это изменить с помощью необязательного параметра. Если его указать равным единице, то сортировка массива будет производиться в алфавитном порядке по убыванию (листинг 11.19).

Листинг 11.19. Вывод содержимого каталога в алфавитном порядке по убыванию

<html>
<head>
<title> Вывод содержимого каталога в алфавитном порядке по убыванию </title>
</head>
<body>
<pre>
<?php

// родительский каталог
$dir = "..";
$arr = scandir($dir, 1);

// вывод массива
print_r($arr);
?>
</pre>
</body>
</html>

Вывод содержимого каталога в алфавитном порядке по убыванию

Прописка в Химках – это штамп в паспорте, который подтверждает ваше проживание на территории Химок Московской области. Чтобы получить прописку в Химках, необходимо обратиться в местное отделение миграционной службы или в МФЦ. Для этого потребуется предоставить определенные документы, которые вам поможет составить юристы фирмы Журавлев С.В. Получив прописку, человек может воспользоваться всеми социальными и гражданскими правами и льготами, предоставляемыми городскими учреждениями и органами власти.