[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрет на отображение вложенных папок
ilma55
Здрасьте! =)

вот решил самостоятельно разобрать механизм создания галлереи

начал с функции отображения содержимого папки.

и тут завис. не понимаю. как определить в текущей папке наличие других папок, и соответственно не учитывать их при отображении всего содержимого каталога.

конечно, можно пойти от обратного и считывать только разширения файлов, но блин мне хочется понять как именно не учитывать вложенные папки

вот код:
function show_file() 
{
$dir="./small/"; //берем директорию
$ar=array();
$dh = opendir($dir);
while ($file_d = readdir($dh)) :
if ($file_d != "." && $file_d != ".." && (!is_dir($file_d))) //не выводим вложенные папки
{
array_push($ar, $file_d); //читаем все файлы в директории
}
endwhile;
closedir($dh);

sort($ar); //сортируем файлы по имени
if (count($ar)== "0") {echo "<p style='color:red'>Нет файлов в папке</p>";}
else {
for($i=0;$i<count($ar);$i++)
{
print "<a href='".$dir.$ar[$i]."' targer='_blank'><img src='".$dir.$ar[$i]."' alt='".$ar[$i]."' border='0'></a> "; //выводим на экран
}
}
}




Спустя 8 часов, 1 минута, 59 секунд (18.01.2011 - 10:02) linker написал(а):
$dir = "./small/";
$data = scandir($dir);
$images = array();
foreach($data as $file)
{
if (is_file($dir . $file))
$images[] = $file;
}

Спустя 1 час, 13 минут, 41 секунда (18.01.2011 - 11:16) ilma55 написал(а):
Цитата (linker @ 18.01.2011 - 07:02)
$dir = "./small/";
$data = scandir($dir);
$images = array();
foreach($data as $file)
{
if (is_file($dir . $file))
$images[] = $file;
}

а чем ваш пример отличается от моего?

вроде scandir просто определяет все содержимое папки...

а мне нужно, чтоб скрипт определил есть ли еще папки в папке small и их игнорировал

Спустя 2 минуты, 1 секунда (18.01.2011 - 11:18) ilma55 написал(а):
ааа.... заметил if (is_file($dir . $file))

ок... попробую дома ... а почему у меня не работало ?

Спустя 1 час, 22 минуты, 24 секунды (18.01.2011 - 12:40) linker написал(а):
Из-за этого is_dir($file_d) в условии ничего и не работало.

Спустя 19 минут, 41 секунда (18.01.2011 - 13:00) ilma55 написал(а):
а если is_dir($dh.$file_d)

Спустя 1 час, 22 минуты, 10 секунд (18.01.2011 - 14:22) linker написал(а):
ilma55
Тоже не заработает.

Спустя 24 минуты, 15 секунд (18.01.2011 - 14:46) ilma55 написал(а):
вижу =(
не могу понять почему?

ведь по логике это !is_dir($file_d) проверяет, если текущий файл не является директорией

Спустя 36 минут, 54 секунды (18.01.2011 - 15:23) linker написал(а):
Так и быть помогу !is_dir($dir . $file_d)

Спустя 19 минут, 34 секунды (18.01.2011 - 15:43) ilma55 написал(а):
я пробовал... но не помогло...
попробую первые твой пример...

Спустя 1 час, 21 минута, 37 секунд (18.01.2011 - 17:04) linker написал(а):
ilma55
Давно пора.

Спустя 6 минут, 19 секунд (18.01.2011 - 17:11) ilma55 написал(а):
я щас на работе. а скрипт дома... дома и продолжу. просто есть хорошая статья где это решено... но хотелось самому хотя бы принцип понять и проверить...

спасибо тебе


_____________
Программист – это не деятельность, это иной образ жизни!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.