За последние 24 часа нас посетили 30587 программистов и 1801 робот. Сейчас ищут 1008 программистов ...

Обход каталога

Тема в разделе "PHP для новичков", создана пользователем lecas, 23 янв 2008.

  1. lecas

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

    С нами с:
    22 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    PHP:
    1. <?php
    2. $default_dir = "./doc";
    3. if(!($dp = opendir($default_dir))) die("Cannot open $default_dir.");
    4. while($file = readdir($dp))
    5. {
    6.    if($file != '.' && $file != '..') echo "$file<br>";
    7.  }  
    8. closedir($dp);
    9. ?>
    файлы каталога /doc он выводит, а вот папки игнорирует, почему?
    И как сделать чтобы он понимал что это каталог.
    используя
    PHP:
    1. if (is_dir($file))
    почему то не получилось
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    у меня всё показывает :)
    а если добавить
    PHP:
    1. <?php
    2. if(is_dir($file ))
    3. echo "$file<br>";
    4. ?>
    то отсеивает и показывает папки
     
  3. lecas

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

    С нами с:
    22 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    Блин, попробовал для другой папки ./images, заработало как надо,
    оказалось, что в том каталоге (./doc) лежала папка с именем "0". =))))
    не знай почему такое имя ему не понравилось.
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Видимо, потому что
    и
    PHP:
    1. <?php
    2.  /* This is the correct way to loop over the directory. */
    3.     while (false !== ($file = readdir($handle))) {
    4.         echo "$file\n";
    5.     }
    6.  
    7.     /* This is the WRONG way to loop over the directory. */
    8.     while ($file = readdir($handle)) {
    9.         echo "$file\n";
    10.     }
    11. ?>
     
  5. lecas

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

    С нами с:
    22 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    Кстати у меня такое сообщение не выдовал, что надо сделать чтобы расписывал причину ошибки?
    и что с этим кодом делать
    PHP:
    1. <?php
    2.   /* This is the correct way to loop over the directory. */
    3.      while (false !== ($file = readdir($handle))) {
    4.          echo "$file\n";
    5.      }
    6.  
    7.      /* This is the WRONG way to loop over the directory. */
    8.      while ($file = readdir($handle)) {
    9.          echo "$file\n";
    10.      }
    11.  ?>
    почему то у меня не получилось
    добавил
    PHP:
    1. <?php
    2.  if(is_dir($file ))
    3.  echo "$file<br>";
    4.  ?>
    в итоге он отсеял всё (пустая страница)
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Для начала внимательно прочитать про readdir в мануале.
     
  7. lecas

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

    С нами с:
    22 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    помоему разобрался сделал следующее
    PHP:
    1. if(is_dir("$default_dir/$file")) {