вот решил самостоятельно разобрать механизм создания галлереи
начал с функции отображения содержимого папки.
и тут завис. не понимаю. как определить в текущей папке наличие других папок, и соответственно не учитывать их при отображении всего содержимого каталога.
конечно, можно пойти от обратного и считывать только разширения файлов, но блин мне хочется понять как именно не учитывать вложенные папки
вот код:
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/"; |
а чем ваш пример отличается от моего?
вроде 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) проверяет, если текущий файл не является директорией
не могу понять почему?
ведь по логике это !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 написал(а):
я щас на работе. а скрипт дома... дома и продолжу. просто есть хорошая статья где это решено... но хотелось самому хотя бы принцип понять и проверить...
спасибо тебе
спасибо тебе
_____________
Программист – это не деятельность, это иной образ жизни!