1. PHP / Говнокод #7886

    +165

    1. 1
    $sExt = file_exists("files/" . $sId . ".flv") ? "m4v" : "flv";

    Вот с такой проверкой столкнулся работая над воспроизведением видео.
    Лишний раз доказывает очень высокопрофессиональный уровень программистов из Пакистана, которые работали над проектом до меня :)

    Запостил: Hits, 17 Сентября 2011

    Комментарии (9) RSS

    • Действительно, ни avi тебе ни 3gp ни mp4
      Ответить
    • В Пакистане есть программисты?
      Ответить
    • в данной строке нет гавна. может на фоне всего кода это было бы гавном.

      например, у тебя может быть расширение видео только .mp4 и .flv

      напиши код, чтобы определить расширение, зная только имя файла.
      лучше чем эта строка ты не напишешь.
      Ответить
      • а я думал, чтобы получить расширение файла, нужно только его имя, и даже необязательно лазить в файловую систему, проверяя существование самого файла
        Ответить
        • Плюсанул, а потом подумал. У нас ведь на входе $sId, а не имя файла. Расширения мы не знаем, поэтому придётся лезть в фс. Если расширения в базе не хранятся, то всё правильно сделали.

          Меня интересует другой момент. Неужели никто не заметил, что
          $sExt = file_exists("files/" . $sId . ".flv") ? "m4v" : "flv";
          при наличии "files/" . $sId . ".flv" возвращает "m4v", а при отсутствии flv-файла вернёт "flv". Вполне возможно, что это автоматический конвертор, который генерирует недостающий формат.

          Но всё равно в коде говно:
          1. С таким подходом добавлять новые форматы очень трудно.
          2. Проверять тип файла лучше по сигнатуре, а не по расширению.
          Ответить
          • я ж и говорю, что на фоне остального кода это может было бы гавном, но не знаю исходной задачи, я бы не назвал это гавно.

            если оно работало, то видимо и нужно было возвращать именно .mp4 при .flv
            Ответить
          • говно тут в подходе:
            1. файлы двух типов в одной папке
            2. на вход не подается тип или полное имя, поэтому нужно узнавать самому

            а при столь узко стоящей задаче: "в папке лежат файлы, либо m4v, либо flv, нужно для каждого добавить его двойник в другом формате" ну никак иначе не выкрутишься.
            Ответить
    • >"m4v" : "flv"
      Сдесь же перечислены все поддерживаемые флешплеером форматы видео. (Из "прописал путь в констурторе класса и готово")
      Ответить

    Добавить комментарий