|
|
|
|
|
для: Alexx
(30.01.2006 в 19:20)
| | Переделал код листинга директорий
<?php
scan_dir(".");
//////////////////////////////////////////////////////////
// Рекурсивная функция - спускаемся вниз по каталогу
//////////////////////////////////////////////////////////
function scan_dir($dirname)
{
// Открываем текущую директорию
$dir = opendir($dirname);
// Читаем в цикле директорию
while (($file = readdir($dir)) !== false)
{
// Если файл обрабатываем его содержимое
if($file != "." && $file != "..")
{
// Если имеем дело с файлом - регистрируем его
if(is_file($dirname."/".$file))
{
echo $dirname."/".$file." - ".
date("m.d.y",filemtime($dirname."/".$file))." - ".
filesize($dirname."/".$file)."<br>";
}
// Если перед нами директория, вызываем рекурсивно
// функцию scan_dir
if(is_dir($dirname."/".$file))
{
echo $dirname."/".$file."<br>";
scan_dir($dirname."/".$file,$fd,$fb);
}
}
}
// Закрываем директорию
closedir($dir);
}
?>
|
Теперь названия могуть на разных языках. Появляется только дополнительный файл data.dat в нужной папке, объясните почему работает не правильно ?
<?
//Переменные
$root = $_SERVER["DOCUMENT_ROOT"];
scan_dir("", $root, "");
function scan_dir($dir_name, $root, $tip)
{
if (file_exists($root."/".$dir_name."/data.dat"))
{
$file = file($root."/".$dir_name."/data.dat");
for ($i = 0 ; $i < count($file); $i++)
{
$stroka = explode(":", $file[$i]);
echo "<tr>\r\n<td>";
echo "<a href =\"".$dir_name."/".trim($stroka[0])."\">".$tip.trim($stroka[1])."\r\n";
echo "</td>\r\n</tr>\r\n";
if (file_exists($root."/".$dir_name."/".trim($stroka[0])."/data.dat")) {
$files = file ($root."/".$dir_name."/".trim($stroka[0])."/data.dat");
foreach ($files as $in => $spisok )
{
scan_dir($dir_name."/".$stroka[0], $root, $tip." -");
}
}
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Alexx
(30.01.2006 в 19:20)
| | Хм... так вот же вы испльзуете функцию is_dir() - она как раз и позволяет выяснить что перед нами директория или нет. | |
|
|
|