За последние 24 часа нас посетил 22891 программист и 1725 роботов. Сейчас ищут 2052 программиста ...

Сканирование тегов mp3, wma и подобных муз. файлов..

Тема в разделе "Прочие вопросы по PHP", создана пользователем SNET.Manager, 20 июн 2006.

  1. SNET.Manager

    SNET.Manager Активный пользователь

    С нами с:
    1 апр 2006
    Сообщения:
    9
    Симпатии:
    0
    Итак.. собстно сабж.. делимся опытом, если кто делал..

    --------------

    Цель: вывести пользователю (или в БД записать) всю инфу о папке с файлами и о файлах в данной папке. Естественно подразумевается то, что отам музыкальные файлы, не музыку можно отсейть даже по расширению..

    Траблы: при работе скрипт жрет оочень много процессорного времени (НЕ ЗАГРУЗКИ) и памяти.. Так же он работает достаточно медленно..

    ---------------

    У меня есть два варианта. Один медленный, а другой просто не очень правильный...

    Маленькое введение: для тех, кто не знает теги, например в mp3, идут после слова "tag" и разделяются несколькими пустыми байтами

    ----------------

    Вариант 1:
    просто парсим весь файл, предварительно загнав его в строку, ищя слово "tag", а после этого начинаем с помощью explode() и list() получать значения тегов...

    Вариант 2:
    делаем експлод по слову "tag" и повторяем принцип первого варианта, только уже не ища начало тегов... вот так вот...

    Очень бы хотелось узнать ваше мнение, а может и ваше решение этой проблемы.

    ЗЫ все это реализованно и работает, но работает долго. коды не привожу аотому как хочу спать и искать их где-то в зарослях файлов и папок оочень неохото.. =)

    Заранее спасибо.
     
  2. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Ну наскока я знаю такие тэги ставят либо в начале файла либо в конце, так что можеш считать из файла только первый и последний килобайт и искать в них. Памойму поиск строки "tag" сработает быстрее explode.
     
  3. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    PHP вообще-то не для сложной обработки большого количества данных предназначен.
    Что вариант 1, что вариант 2, написанный на Ц+ассемблер будет работать в пару тысяч раз быстрее.
     
  4. SNET.Manager

    SNET.Manager Активный пользователь

    С нами с:
    1 апр 2006
    Сообщения:
    9
    Симпатии:
    0
    Все бы ладно, я бы написал такую фишку, но проблема в том, что надо на пхп.. что бы в любой ситестеме работало.. Ява тож не катит, так как надо это сделать как базу мп3 или еще чего-то.. вообщем музыки...

    ЗЫ теги находятся в конце файло, но не в самом конце.. а где-то на 3 - 4 строчки от конца....
     
  5. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Пиши на C не привязывая к системе. Просто компилируй на каждой отдельно.
     
  6. Shtogrin

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

    С нами с:
    21 июн 2006
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Kiev