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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2010, 21:18   #1
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию is_file is_dir

немогу понять почему не работает is_dir() пишу простой код для вывода папок на страницу:

PHP код:
$h = @opendir("img/Accessory_battery") or die('Failed open directory');
while (
$ittem=readdir($h)){
    if (
is_dir($ittem)) echo $ittem."<br>"

он у меня выводит только:
.
..
в чём дело и как исправить?

Последний раз редактировалось BloodWizard; 26.07.2010 в 22:11.
BloodWizard вне форума Ответить с цитированием
Старый 26.07.2010, 21:52   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

А какие ещё папки у вас есть ВНУТРИ папки img/Accessory_battery ? И чему равна переменная $data ?
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 26.07.2010, 22:13   #3
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию

извиняюсь... перменной $data нет просто уже эксперементировал а тут уж забыл убрать её... а содержимое папки вот:
motorol_br50\
motorola_bc50\
motorola_bc60\
nokia_bl-4b\
Thumbs.db
thumb.jpg
BloodWizard вне форума Ответить с цитированием
Старый 26.07.2010, 23:55   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Если пытаетесь где-то в коде понять что не так - всегда убирайте подавление ошибок @.
Я почти уверен, что неправильно указан путь к директории.
Попробуйте вывести вообще все, включая файлы. Посмотрите видит ли скрипт вообще эту директорию.
Для сканирования директорий я вообще использую scandir
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 27.07.2010, 03:10   #5
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

у меня так реализовано:
Код HTML:
$url="../docs";
if (is_dir($url)) {
if ($dir = opendir($url)) {
while ($file = readdir($dir)) {
if ($file != "." && $file != "..") {
$list[]=$file;
}
}
closedir($dir);
}
}
получаем массив list, содержащий имена всех объектов в папке docs, остается только отсортировать и отсеять лишнее.
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 27.07.2010, 09:49   #6
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию

Цитата:
у меня так реализовано:
Код HTML:

$url="../docs";
if (is_dir($url)) {
if ($dir = opendir($url)) {
while ($file = readdir($dir)) {
if ($file != "." && $file != "..") {
$list[]=$file;
}
}
closedir($dir);
}
}

получаем массив list, содержащий имена всех объектов в папке docs, остается только отсортировать и отсеять лишнее.
Вы не поняли чего я хочу... мне нужно отсканировать папку и вывести только каталоги в ней
BloodWizard вне форума Ответить с цитированием
Старый 27.07.2010, 09:50   #7
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

readdir возвращает строку, вы подаете её на вход ф-ии is_dir без указания полного пути, ф-я воспринимает его как относительный и проверяет наличие директории в той директории в которой работает, а она не явлется img/Accessory_battery
PHP код:
$h = @opendir("img/Accessory_battery") or die('Failed open directory');
while (
$ittem=readdir($h)){
    if (
is_dir("img/Accessory_battery/".$ittem)) echo $ittem."<br>"

Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 27.07.2010, 17:59   #8
BloodWizard
Пользователь
 
Аватар для BloodWizard
 
Регистрация: 23.10.2008
Сообщений: 46
По умолчанию

mv28jam, спасибо всё получилось.
BloodWizard вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск