Иллюстрированный самоучитель по PHP

Файл index.php

Теперь можно и сканировать текущую папку. Получаем список файлов в ней (пояснения смотрите в Главе 6 – в описании сценария "Папкопотрошилка"):

$hdl=opendir($dirct); while ($file = readdir($hdl)) {
if (($file!="..")&&($file!=".")) { $a[]=$file;
} }
closedir($hdl);

В том случае, если файлы в папке есть…

if (sizeof($a)>0)
{

…отсортируем массив с их именами по алфавиту. К сожалению, при этом имена папок окажутся перемешанными с именами файлов, но делать специальную функцию сортировки пока не будем:

asort($a);

Теперь надо вывести на страницу имена файлов и папок, причем каждое имя должно быть ссылкой на соответствующий файл или папку, а перед именем должен стоять checkbox для возможности выбора соответствующих файлов и папок для совершения над ними действий.

С каждым именем файла или папки…

foreach ($a as $k)
 {

…поступим следующим образом.

Примечание
Оператор foreach считывает указанную в его параметрах переменную, в данном случае $к, все элементы массива, в данном случае $а, по очереди выполняя каждый раз указанный после него в фигурных скобках код, в котором может использоваться указанная переменная. Foreach будет работать только в РНР 4.0 и выше. Если вы можете использовать лишь РНР3, то вместо него можно использовать цикл for, указав в его параметрах величину массива $1
.

Вначале запишем в переменную путь к данному файлу или папке – относительный от той директории, где находятся файлы самого файлового менеджера. Для этого просто прибавим имя данного файла или папки к пути к текущей директории:

$full=$dirct."/". $k;

Теперь выведем checkbox:

echo ("<input name=fl[] value=$k type=checkbox>");

При передаче формы странице-обработчику будет передан массив $fl, состоящий из значений атрибутов value отмеченных checkbox'oв (только отмеченных – неотмеченные игнорируются). А в качестве значений атрибутов value мы указываем имена файлов. Так что сценарию-обработчику будет полностью ясно, с какими файлами ему работать – путь к текущей папке будет передан в переменной в ссылке на обработчик, указанной в заголовке формы, а имена файлов передадутся в массиве $fl.

Если очередной элемент массива с именами файлов в текущей директории является папкой…

if (is__dir ($full)==True)

Примечание
Функция is_dir возвращает True, если указанный в ее параметре объект существует и является папкой
.

… то выведем ссылку на нее. Вернее, не на нее, а на этот же файл нашего файлового менеджера – index.php, передав ему в качестве пути к текущей папке – в значении переменной Sfold – записанный нами ранее в переменную Sfull полный путь к данной папке:

echo ("<a href=index.php?fold=$full><b>nariKa $k</bx/a>");

Ну и укажем в качестве текста ссылки название папки, пояснив, что эта ссылка ведет именно на папку (см. рис. 11.4).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.