readdir и кнопка "back"

Marquis

Новичок
readdir и кнопка "back"

есть простой код показывающий содержимое директории:
PHP:
if ($handle = opendir('.')) {
   while (false !== ($file = readdir($handle))) {
       if ($file != "." && $file != "..") {
           echo "$file\n";
       }
   }
   closedir($handle);
}
взял c php.net

так вот, как правильно формировать ссылку на возврата на один уровень выше текущей директории?

пока реализовал с помощью функций explode и foreach но может быть есть способ проще определить директорию лежащую на уровень выше текущей.

ps. как всегда желание сделать код более читабельным.
 

wizard

Новичок
Как ты думаешь, что это за точки, с которыми сравнивается $file? Вот про них и узнай.
 

Develar

Новичок
Re: readdir и кнопка "back"

как всегда желание сделать код более читабельным
пиши тогда на PHP5 с применением SPL (есть специализированный итератор) и функций типа scandir, glob.
 

Фанат

oncle terrible
Команда форума
Develar
нельзя ли поподробнее развернуть свою мысль?
пока не видно особой связи с вопросом
 

Develar

Новичок
Человеку надо вывести содержимое каталога. Для этого он использует кучу кода. При этом он делает примечание "как всегда желание сделать код более читабельным". Пожалуйста - scandir. Нужно по маске - glob. И не нужно этих while, opendir, closedir и readdir. Если в коде будут выполняться какие-то более сложные операции, чем просто echo - используем RecursiveDirectoryIterator из SPL.
 

ngm

Новичок
PHP:
$upper = substr($current, 0, strrpos(rtrim($current, "/"), "/"));
-~{}~ 08.07.06 14:56:

Develar
только наверное в данном случае надо DirectoryIterator вместо RecursiveDirectoryIterator
 

Фанат

oncle terrible
Команда форума
Develar
поясняю для тех, кто не умеет читать:
человеку надо подняться на один уровень вверх.
вот о чём был вопрос.
а не о выводе директорий.

касательно же
Для этого он использует кучу кода.
он может всю эту "кучу" оформить в функцию, и кода получится мало.
суммарно же, учитывая код библиотек - в 100 раз меньше, чам с spl
 

Develar

Новичок
Фанат
В сообщении спрашивающего: "есть простой код показывающий содержимое директории", а в конце процитированная мною выше фраза. Так как иного кода в сообщении я не нашел - то и ответил по нему.
А уж что лучше - реализовывать свой класс со своим интерфейсом, или воспользоваться стандартным интерфейсом (который будет понятен сразу в силу своей стандартности новому человеку в проекте), замещая/дополняя нужное - это религиозный вопрос, разумеется.
 

Marquis

Новичок
Сорри долго не отвечал, компутер поламался.
Так вот, Фанат прав, мне всего то нужно было принтовать кнопку "назад" т.е. подъем на один уровень выше.
решил вопрос через explode() и while() это конечно извращение но главное нужный результат я получил.
 

Develar

Новичок
Зачем изобретать свой велосипед, когда PHP дает 2 функции для этого?
1) [m]realpath[/m]
PHP:
$parent_dir = realpath($current_dir. DIRECTORY_SEPARATOR . '..');
2) [m]dirname[/m]
PHP:
$parent_dir = dirname($current_dir);
 
Сверху