Доброго времени суток! Объясните,плз,почему при таком коде красным фоном выделяются не все каталоги,а только точка и две точки,и как сделать,чтобы выделялись все каталоги? $dirname="C:\Windows"; if ($handle = opendir($dirname)) { echo "Дескриптор каталога: $handle<br>"; echo "Файлы:<br>"; } while (false !== ($file = readdir($handle))) print(is_dir($file))?"<font color=red>$file</font><br>":"$file<br>"; Спасибо.
Шо за нафиг? PHP: <?php $dirname = "C:\\Windows"; $folders = scandir($dirname); foreach($folders as $folder) { if($folder == '.' || $folder == '..') continue; if(is_dir($dirname.'/'.$folder)) { echo '<span style="color: #F00;">'.$folder.'</span>'; } } ?>
Спасибо за свой вариант. Я в своем поставил "/" вместо "\", все нормально работает. А почему в переменной $dirname стоит backslash,а ф-ии is_dir нужен forward slash?
ZapLeston Потому что надо ставить не '\' и не '/', а константу DIRECTORY_SEPARATOR. И главная проблема в $dirname = "C:\\Windows"; вместо $dirname = "C:\Windows"; Советую вывести оба варианта и сравнить результат. А затем прочитать про экранирование символов.