Для работы с файловой системой в UMI принято использовать классы umiFile
, umiImageFile
и umiDirectory
. Они упрощают некоторые рутинные операции и предоставляют некоторые дополнительные возможности. Работа с ними достаточно прозрачная, поэтому мы рассмотрим только основные моменты.
Работа с отдельным файлом происходит примерно следующим образом.
<?php
header("Content-type: text/html; charset=utf-8");
include "standalone.php";
/*
Документация: работа с файловой системой. Аксессоры класса umiFile.
*/
$file = new umiFile(__FILE__);
echo $file->getFileName(), "<br />\n"; //Выводим название файла
echo $file->getFilePath(), "<br />\n"; //Выводим путь к файлу
echo date("Y-m-d H:i", $file->getModifyTime()); //Выводим время модификации файла
?>
fs_1.php
/usr/local/www/baleba/htdocs/doc_samples/fs_1.php
2008-09-08 19:07
Пример скачивания отдельного файла. В результате выполнения скрипта пользователю будет предложено скачать исходный код текущего скрипта.
<?php
include "standalone.php";
/*
Документация: работа с файловой системой. Скачивание файла.
*/
$file = new umiFile(__FILE__);
$file->download(); //Передать в браузер текущий файл на скачивание
?>
Работа с директориями происходит тоже предельно просто. Ниже показано, как можно вывести содержание директории, используя итератор в umiDirectory
.
<?php
header("Content-type: text/html; charset=utf-8");
include "standalone.php";
/*
Документация: работа с файловой системой. Работа с директориями: итераторы.
*/
//Получаем объект для директории "images"
$dir = new umiDirectory("images");
//Используем его в цикле foreach (umiDirectory реализует итератор)
foreach($dir as $item) {
if($item instanceof umiFile) {
echo $item->getFileName(), "<br />\n";
}
if($item instanceof umiDirectory) {
echo "<", $item->getName(), "><br />\n";
}
}
?>
<.svn>
<cms>
<icons>
banner468x60.png
bg_vote_wb.gif
top.jpg
bg_vote_wt.gif
logo.png
bg_vote_top.gif
.htaccess
bg_vote_bot.gif
arrow.png
<forum>
<tttttttt>