ФорумПрограммированиеPHP для идиотов → Работа с каталогами и фаилами

Работа с каталогами и фаилами

  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 сентября 2009 г. 20:18, спустя 3 минуты 41 секунду


    надо просто не доводить людей до того чтоб они ею пользовались
    доводы на пiха.ру
    все умрут, а я изумруд
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2009 г. 21:12, спустя 54 минуты 14 секунд

    <?php
    function myScan($root){
     $result = array();
     $root .= '/'; // на всяк случай, вдруг забыли при вызове вставить.
     foreach (scandir($root) as $item){
       // Пропускаем противные указатели на папку и корень
       if('.' == $item or '..' == $item){
         continue;
       }
       // Папка! Будем и её сканить…
       if(is_dir($root.$item)){
         // вот она РЕКУРСИЯ - вызов самого себя. (но значение параметра уже другое)
         $tmp = myScan($root.$item);
         // Результат сканирования папки в общий котел
         $result = array_merge($result,$tmp);
       // Если подходящий файл - добавляем его в результаты
       }elseif('.exe' == substr($item,-4)){
         $result[] = $root.$item;
       }
     }
     return $result;
    };

    $root = 'D:/service';
    $result = myScan($root);

    echo "<PRE>\n $root \n".print_r($result,true);
    exit();


    [tt] D:/service
    Array
    (
       [0] => D:/service/FileZilla-3.2.2.1/filezilla.exe
       [1] => D:/service/FileZilla-3.2.2.1/fzputtygen.exe
       [2] => D:/service/FileZilla-3.2.2.1/fzsftp.exe
       [3] => D:/service/FlashGet/flashget.exe
       [4] => D:/service/IrfanView/Plugins/IV_Player.exe
       [5] => D:/service/IrfanView/Plugins/Slideshow.exe
       [6] => D:/service/IrfanView/i_view32.exe
       [7] => D:/service/IrfanView/iv_uninstall.exe
       [8] => D:/service/Notepad++/notepad++.exe
       [9] => D:/service/PDF_Reader/Foxit Reader.exe
       [10] => D:/service/QIP/QIP/qip.exe

    [/tt]
    Спустя 62 сек.
    Рекурсия на пiха.ру
    Спустя 13 сек.
    Прикольная кнопка :)
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2009 г. 21:20, спустя 8 минут 7 секунд

    Прикольная кнопка на пiха.ру
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 сентября 2009 г. 21:41, спустя 21 минуту 13 секунд


    Прикольная кнопка на пiха.ру
    ридонли на пiха.ру
    Сапожник без сапог
  • }/{EHR

    Сообщения: 734 Репутация: N Группа: Адекваты

    Spritz 29 сентября 2009 г. 22:19, спустя 38 минут 12 секунд

    Нет кнопки на пiха.ру
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 сентября 2009 г. 22:21, спустя 1 минуту 7 секунд


    Нет кнопки на пiха.ру
    ридонли на пiха.ру
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 8:45, спустя 10 часов 24 минуты 55 секунд

    мегаудобная функция рекурсивного обхода папок с фильтрацией по расширению © artoodetoo
    http://snipplr.com/view/20447/another-directory-crowler/
    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 9:18, спустя 32 минуты 13 секунд

    Можно использовать SPL


    $fileSPLObjects = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($this->directory),
    RecursiveIteratorIterator::CHILD_FIRST
    );

    foreach($fileSPLObjects as $fullFileName => $fileSPLObject) {

    }


    http://pyha.ru/forum/topic/2990.msg59190#msg59190
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 9:29, спустя 11 минут 48 секунд

    adw0rd, новизна в формате выдачи, которая для некоторых применений более удобна.
    а в твоем примере привычный fullfilename :) и кстати как в случае этого итератора фильтровать по расширению? своими руками?
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 9:49, спустя 19 минут 37 секунд


    adw0rd, новизна в формате выдачи, которая для некоторых применений более удобна.
    а в твоем примере привычный fullfilename :) и кстати как в случае этого итератора фильтровать по расширению? своими руками?
    тут решает скорость, скорость spl directory iterator ахуенная по сравнению с glob || dir & read
    Сапожник без сапог
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 30 сентября 2009 г. 9:58, спустя 9 минут 7 секунд

    RegExpr (: все ващето дико просто докуя (: более того вот те регекспа
    preg_match_all('/(\w:\\)?([^\\]+\\)|([^\.|\\]+\\..+)/i', $text, $matches, PREG_PATTERN_ORDER);

    c C:\Users\Brad\Music\Request Fills\Dethklok - Dethalbum II (FLAC)\(08) I Tamper With The Evidence At The Murder Site Of Odin - Dethklok.wav в
    Array
    (
       [0] => Array
           (
               [0] => C:\Users\
               [1] => Brad\
               [2] => Music\
               [3] => Request Fills\
               [4] => Dethklok - Dethalbum II (FLAC)\
               [5] => (08) I Tamper With The Evidence At The Murder Site Of Odin - Dethklok.wav
           )

       [1] => Array
           (
               [0] => C:\
               [1] =>
               [2] =>
               [3] =>
               [4] =>
               [5] =>
           )

       [2] => Array
           (
               [0] => Users\
               [1] => Brad\
               [2] => Music\
               [3] => Request Fills\
               [4] => Dethklok - Dethalbum II (FLAC)\
               [5] =>
           )

       [3] => Array
           (
               [0] =>
               [1] =>
               [2] =>
               [3] =>
               [4] =>
               [5] => (08) I Tamper With The Evidence At The Murder Site Of Odin - Dethklok.wav
           )

    )
    можно конешно еще ковырять дальше но всеже (:
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 10:19, спустя 21 минуту 6 секунд

    Dr.TRO, чо это за хуйня? с виду ты помешан на регулярках :)

    чтобы работать с путями есть более изящные средства
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 10:19, спустя 7 секунд

    Dr.TRO, а если у тебя количество вложений больше то все завалится
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 сентября 2009 г. 10:20, спустя 18 секунд


    Dr.TRO, а если у тебя количество вложений больше то все завалится
    причем нахуй
    Сапожник без сапог
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 30 сентября 2009 г. 10:32, спустя 12 минут 12 секунд


    Dr.TRO, а если у тебя количество вложений больше то все завалится
    всмысле ? (:  
    Спустя 39 сек.

    Dr.TRO, чо это за хуйня? с виду ты помешан на регулярках :)

    чтобы работать с путями есть более изящные средства
    Ну это мое решение) Подскажи что луучше буду оч благодарен

Пожалуйста, авторизуйтесь, чтобы написать комментарий!