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

Файловая кмс

  • phpdude

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

    Spritz 20 июня 2009 г. 10:04

    вопросы вида: нахуй она нужна? я отвечать не стану. надо и все :)

    собственно сам вопрос - как бы вы обработали папку data в которой находятся файлы (обычная папка на диске). мне надо получить ее в виде дерева и в виде key(path/to/folder)=>fnames(array) .. у меня получился кусок кода - 40 строк… получаю данные в таком виде

    Array
    (
    [plain] => Array
    (
    [tests] => Array
    (
    )

    [tests/test] => Array
    (
    )

    [news] => Array
    (
    )

    [news/subnews] => Array
    (
    [0] => test.html
    )

    [] => Array
    (
    [0] => test.css
    )

    [pages] => Array
    (
    )

    )

    [tree] => Array
    (
    [tests] => Array
    (
    [test] => Array
    (
    )

    )

    [news] => Array
    (
    [subnews] => Array
    (
    [0] => test.html
    )

    )

    [] => Array
    (
    [0] => test.css
    )

    [pages] => Array
    (
    )

    )

    )
    Generation time: 0.000854015350342


    чувствую что это пиздец :))) есть предложения?
    Сапожник без сапог
  • artoodetoo

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

    Spritz 20 июня 2009 г. 21:07, спустя 11 часов 3 минуты 5 секунд

    может я чего недопонял в постановке, но это сущая фигня. 26 строк вместе с выводом

    <?php

    function fillEntries($dir, &$entries)
    {
    $d = dir($dir);
    $subEntries = array();
    while (($entry = $d->read()) !== false)
    {
    if ($entry{0} != '.')
    {
    if (is_file($dir.'/'.$entry))
    $subEntries[] = $entry;
    else
    fillEntries($dir.'/'.$entry, $entries);
    }
    }
    $d->close();
    $entries[$dir] =& $subEntries;
    }

    $entries = array();
    fillEntries('data', $entries);

    echo "<pre>\n";
    print_r($entries);
    echo "</pre>\n";


    натравил на phpbb

    Array
    (
    [phpBB3/adm/images] => Array
    (
    [0] => icon_sync_disabled.gif
    [1] => phpbb_logo.gif
    [2] => bg_hash1.gif
    [3] => bg_hash2.gif
    [4] => bg_hash3.gif
    [5] => icon_down.gif
    [6] => file_modified.gif
    [7] => bg_hash4.gif
    [8] => gradient2b.gif
    [9] => file_up_to_date.gif
    [10] => bg_button.gif
    [11] => icon_folder.gif
    [12] => icon_sync.gif
    [13] => arrow_right.gif
    [14] => file_new.gif
    [15] => progress_bar.gif
    [16] => icon_edit.gif
    [17] => no_image.png
    [18] => arrow_up.gif
    [19] => cellpic3.gif
    [20] => file_conflict.gif
    [21] => icon_folder_link.gif
    [22] => icon_delete_disabled.gif
    [23] => icon_down_disabled.gif
    [24] => icon_trace.gif
    [25] => corners_left2.gif
    [26] => corners_right.gif
    [27] => file_new_conflict.gif
    [28] => icon_delete.gif
    [29] => bg_header.jpg
    [30] => spacer.gif
    [31] => arrow_down.gif
    [32] => toggle.gif
    [33] => bg_tabs1.gif
    [34] => bg_tabs_alt1.gif
    [35] => bg_tabs2.gif
    [36] => bg_tabs_alt2.gif
    [37] => icon_up_disabled.gif
    [38] => icon_edit_disabled.gif
    [39] => corners_left.gif
    [40] => corners_right2.gif
    [41] => icon_folder_lock.gif
    [42] => icon_up.gif
    [43] => innerbox_bg.gif
    [44] => icon_subfolder.gif
    [45] => file_not_modified.gif
    [46] => bg_header.gif
    [47] => arrow_left.gif
    [48] => no_avatar.gif
    )

    [phpBB3/adm/style] => Array
    (
    [0] => overall_header.html
    [1] => install_error.html
    [2] => permissions.js
    [3] => confirm_body_prune.html
    [4] => acp_profile.html
    [5] => acp_users.html
    [6] => acp_logs.html
    [7] => acp_database.html
    [8] => install_install.html
    [9] => acp_prune_users.html
    [10] => acp_attachments.html
    [11] => install_update_diff.html
    [12] => acp_update.html
    [13] => acp_main.html
    [14] => acp_jabber.html
    [15] => acp_users_overview.html
    [16] => acp_board.html
    [17] => custom_profile_fields.html
    [18] => acp_words.html
    [19] => acp_ban.html
    [20] => install_footer.html
    [21] => acp_captcha.html
    [22] => progress_bar.html
    [23] => acp_search.html
    [24] => acp_users_feedback.html
    [25] => acp_icons.html
    [26] => acp_ranks.html
    [27] => acp_groups.html
    [28] => acp_users_profile.html
    [29] => simple_footer.html
    [30] => permission_roles_mask.html
    [31] => install_main.html
    [32] => acp_email.html
    [33] => colour_swatch.html
    [34] => admin.css
    [35] => install_header.html
    [36] => acp_permission_roles.html
    [37] => acp_users_prefs.html
    [38] => acp_bbcodes.html
    [39] => acp_inactive.html
    [40] => acp_bots.html
    [41] => viewsource.html
    [42] => acp_reasons.html
    [43] => editor.js
    [44] => acp_forums.html
    [45] => simple_header.html
    [46] => acp_disallow.html
    [47] => permission_mask.html
    [48] => acp_users_signature.html
    [49] => acp_language.html
    [50] => acp_styles.html
    [51] => overall_footer.html
    [52] => acp_users_avatar.html
    [53] => acp_php_info.html
    [54] => acp_modules.html
    [55] => acp_permissions.html
    [56] => message_body.html
    [57] => tooltip.js
    [58] => simple_body.html
    [59] => permission_trace.html
    [60] => install_convert.html
    [61] => acp_prune_forums.html
    [62] => install_update.html
    [63] => confirm_body.html
    )



    [phpBB3/styles/prosilver] => Array
    (
    [0] => style.cfg
    )

    [phpBB3/styles] => Array
    (
    )

    [phpBB3] => Array
    (
    [0] => config.php
    [1] => common.php
    [2] => cron.php
    [3] => faq.php
    [4] => index.php
    [5] => mcp.php
    [6] => memberlist.php
    [7] => posting.php
    [8] => report.php
    [9] => search.php
    [10] => style.php
    [11] => ucp.php
    [12] => viewforum.php
    [13] => viewonline.php
    [14] => viewtopic.php
    )

    )

    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 20 июня 2009 г. 23:32, спустя 2 часа 25 минут 26 секунд

    хм .. не знал про объект dir ..век живи век учись =))
    Сапожник без сапог
  • kendo

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

    Spritz 20 июня 2009 г. 23:45, спустя 12 минут 28 секунд

    Что-то вот такого вида:

    $in = 'E:/Музыка/Gothic Rock Metal Industrial/';
    $dir = scandir($in);
    $files = array(); //искомый массив
    foreach($dir as $subdir) {
    if ($subdir == '.' || $subdir == '..') {
    continue;
    }
    $files[$in . $subdir] = scandir($in . $subdir);
    }
    print_r($files);


    Array
    (
    [E:/Музыка/Gothic Rock Metal Industrial/2007 - In Control] => Array
    (
    [0] => .
    [1] => ..
    [2] => 01 - No More.flac
    [3] => 02 - In Control.flac
    [4] => 03 - Home.flac
    [5] => 04 - The Way I Feel.flac
    [6] => 05 - Lost Inside.flac
    [7] => 06 - Remember.flac
    [8] => 07 - Believe.flac
    [9] => 08 - Like The Air.flac
    [10] => 09 - Broken.flac
    [11] => 10 - Never.flac
    [12] => Covers
    [13] => F.jpg
    [14] => In Control.CUE
    [15] => In Control.log
    )

    [E:/Музыка/Gothic Rock Metal Industrial/Angtoria] => Array
    (
    [0] => .
    [1] => ..
    [2] => God Has A Plan For Us All
    )

    [E:/Музыка/Gothic Rock Metal Industrial/Blue Stahli] => Array
    (
    [0] => .
    [1] => ..
    [2] => Blue Stahli - Accelerant.mp3
    [3] => Blue Stahli - Bulletproof.mp3
    [4] => Blue Stahli - Disco Punks on Jolt.mp3
    [5] => Blue Stahli - High Heeled Low Life.mp3
    [6] => Blue Stahli - Leadfoot Getaway.mp3
    [7] => Blue Stahli - Mystique.mp3
    [8] => Blue Stahli - Overklock.mp3
    [9] => Blue Stahli - Premeditated.mp3
    [10] => Blue Stahli - Scrape.mp3
    [11] => Blue Stahli - Shotgun Senorita.mp3
    [12] => Blue Stahli - The Pure And The Tainted.mp3
    [13] => Blue Stahli - The Ulimate.mp3
    )
    и т.д.

    Только надо еще рекурсию прикрутить чтобы по вложенным подпапкам бегать
  • phpdude

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

    Spritz 21 июня 2009 г. 0:29, спустя 44 минуты 31 секунду

    KENDO, посмотри кто ТС и думаешь он такую хуйню не сделает?))
    Сапожник без сапог
  • kendo

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

    Spritz 21 июня 2009 г. 8:18, спустя 7 часов 49 минут 4 секунды

    Кто такое ТС? :)
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 21 июня 2009 г. 8:24, спустя 5 минут 11 секунд


    Кто такое ТС? :)
    topic starter. Топик стартер.
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 июня 2009 г. 14:23, спустя 1 день 5 часов 59 минут

    Нахуй она нужна?!
  • phpdude

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

    Spritz 22 июня 2009 г. 20:08, спустя 5 часов 45 минут 13 секунд


    вопросы вида: нахуй она нужна? я отвечать не стану. надо и все :)

    собственно сам вопрос - как бы вы обработали папку data в которой находятся файлы (обычная папка на диске). мне надо получить ее в виде дерева и в виде key(path/to/folder)=>fnames(array) .. у меня получился кусок кода - 40 строк… получаю данные в таком виде


    чувствую что это пиздец :))) есть предложения?
    Сапожник без сапог
  • Trej Gun

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

    Spritz 23 июня 2009 г. 0:21, спустя 4 часа 12 минут 33 секунды

    а есть на форуме функционал "прикрепить первое сообщение в теме"?
  • phpdude

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

    Spritz 23 июня 2009 г. 0:37, спустя 16 минут 25 секунд


    а есть на форуме функционал "прикрепить первое сообщение в теме"?
    это как? … объясни получше идея непонятна)
    Сапожник без сапог
  • Trej Gun

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

    Spritz 23 июня 2009 г. 2:00, спустя 1 час 22 минуты 50 секунд

  • phpdude

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

    Spritz 23 июня 2009 г. 2:04, спустя 3 минуты 56 секунд

    аа понял, прикольная кстати тема, пиши тикет)
    Сапожник без сапог
  • rider-sx

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

    Spritz 23 июня 2009 г. 2:29, спустя 25 минут 18 секунд


    смотри сюда

    http://www.skier.com.ua/skierbin/vfor.cgi?skf=get_topic&f=1&t=002221&p=124&sorted=
    В чем прикол?
    ЗЫ 404 NotFound =)
  • Professor

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

    Spritz 23 июня 2009 г. 2:47, спустя 17 минут 56 секунд

    Прикол в том что ты по страницам топика скачешь, а первый пост на вссех страницах.
    Но ИМХО не для пыхи это.
    Потому сто пост первый про одно, а на всех остальных страницах совершенно не по теме разговор.
    И представьте что будет чувствовать юзер? =)

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