За последние 24 часа нас посетили 23629 программистов и 1664 робота. Сейчас ищут 1223 программиста ...

Проблемы с readdir()

Тема в разделе "PHP для новичков", создана пользователем ZapLeston, 9 июн 2009.

  1. ZapLeston

    ZapLeston Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    11
    Симпатии:
    0
    Доброго времени суток!
    Объясните,плз,почему при таком коде красным фоном выделяются не все каталоги,а только точка и две точки,и как сделать,чтобы выделялись все каталоги?

    $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>";

    Спасибо.
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Шо за нафиг?

    PHP:
    1. <?php
    2.  
    3. $dirname = "C:\\Windows";
    4. $folders = scandir($dirname);
    5.  
    6. foreach($folders as $folder)
    7. {
    8.     if($folder == '.' || $folder == '..') continue;
    9.  
    10.     if(is_dir($dirname.'/'.$folder)) {
    11.         echo '<span style="color: #F00;">'.$folder.'</span>';
    12.     }
    13. }
    14.  
    15. ?>
     
  3. ZapLeston

    ZapLeston Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    11
    Симпатии:
    0
    Спасибо за свой вариант.
    Я в своем поставил "/" вместо "\", все нормально работает.
    А почему в переменной $dirname стоит backslash,а ф-ии is_dir нужен forward slash?
     
  4. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    ZapLeston
    Потому что надо ставить не '\' и не '/', а константу DIRECTORY_SEPARATOR. И главная проблема в
    $dirname = "C:\\Windows";
    вместо
    $dirname = "C:\Windows";

    Советую вывести оба варианта и сравнить результат.
    А затем прочитать про экранирование символов.
     
  5. ZapLeston

    ZapLeston Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    11
    Симпатии:
    0
    теперь понятно,спасибо.