Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2011, 01:58   #1
ilma55
webber
Форумчанин
 
Аватар для ilma55
 
Регистрация: 28.01.2010
Сообщений: 103
По умолчанию запрет на отображение вложенных папок

Здрасьте! =)

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

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

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

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

вот код:


PHP код:
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> "//выводим на экран 
            

        }

Компьютерные вирусы - это такие маленькие программульки, которые пишут большие говнюки.
ilma55 вне форума Ответить с цитированием
Старый 18.01.2011, 15:26   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Сообщение от ilma55 Посмотреть сообщение
Здрасьте! =)

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

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

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

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

вот код:


PHP код:
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> "//выводим на экран 
            

        }

Что то я не понял тебя. Ты ведь в этом коде и так вложенные папки не учитываешь.
ssdm вне форума Ответить с цитированием
Старый 18.01.2011, 15:44   #3
ilma55
webber
Форумчанин
 
Аватар для ilma55
 
Регистрация: 28.01.2010
Сообщений: 103
По умолчанию

не.... не работает...
вот структура.

index.php
small
|_ lalalal
|_dhhdhd

вроде это (!is_dir($file_d)) должно не учитывать папки. но я пробовал и (!is_dir($dh.$file_d))

тоже нет
Компьютерные вирусы - это такие маленькие программульки, которые пишут большие говнюки.
ilma55 вне форума Ответить с цитированием
Старый 18.01.2011, 15:52   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Ааа... Ну так тут все просто.
!is_dir($dir."/".$file_d) - правильно.
ssdm вне форума Ответить с цитированием
Старый 18.01.2011, 15:56   #5
ilma55
webber
Форумчанин
 
Аватар для ilma55
 
Регистрация: 28.01.2010
Сообщений: 103
По умолчанию

не... пробовал... не пашет...

я другой наршел... вот так is_file()
Компьютерные вирусы - это такие маленькие программульки, которые пишут большие говнюки.
ilma55 вне форума Ответить с цитированием
Старый 18.01.2011, 18:28   #6
13th
Форумчанин
 
Аватар для 13th
 
Регистрация: 31.12.2008
Сообщений: 634
По умолчанию

на самом деле есть прекрасная функции glob(), is_dir, is_file и (ВНИМАНИЕ) такое понятие как рекурсия.
Возможно всё
Пишу обо всем
13th вне форума Ответить с цитированием
Старый 18.01.2011, 18:45   #7
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Сообщение от 13th Посмотреть сообщение
на самом деле есть прекрасная функции glob(), is_dir, is_file и (ВНИМАНИЕ) такое понятие как рекурсия.
Сарказм не засчитан ))
is_dir , is_file в коде используется.
Зачем в этой задаче glob ? Если в папке и так лежат картинки?
и зачем здесь рекурсия , если ищем не рекурсивно( то есть в папке, не включая подпапки )?
ssdm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет нажатия кнопки и запрет неправильного ввода данных De_Kurlzz Помощь студентам 1 15.06.2011 15:14
Программирование вложенных циклов vanek1 Помощь студентам 2 28.11.2010 12:11
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
Вытащить файлы из вложенных папок ZORRO2005 Microsoft Office Excel 14 06.10.2008 23:04
как сохранить отображение папок на выносимых носителях. Alar Свободное общение 10 21.02.2007 20:51