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

    +61

    1. 1
    2. 2
    3. 3
    $translitReplace=array(array('.', ',', ' ', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'),
      array('', '', '-', 'A', 'B', 'V', 'G', 'D', 'E', 'JO', 'ZH', 'Z', 'I', '', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'KH', 'C', 'CH', 'SH', 'SHH', '', 'Y', '', 'E', 'JU', 'JA'));
      if(!$_POST['uriNews']) $_POST['uriNews']=strtolower(str_replace($translitReplace[0], $translitReplace[1], mb_strtolower($_POST['titleNews'], 'utf-8')));

    Личное творчество. :)
    Это когда начальник грозно дышит в ухо "гдебля", ты отвечаешь "щабля", ударяешься оземь и оборачиваешься птицей с радостным "вобля", а потом смотришь собственный код и думаешь "нубля".

    Запостил: skryisli, 15 Июня 2012

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

    • А если не секрет, зачем $translitReplace сделан в виде массива из двух элементов?
      Ответить
      • Чтобы голову именами не забивать. Обычная практика. Что меняем в нуле, на что меняем в единице. А вот тудасюдавое гоняние регистра меня порадовало. Сижу переписываю. :)
        Ответить
        • > Обычная практика.
          Печально.
          Ответить
          • Чем же?
            Ответить
            • Ну как бы массивы не совсем для этого придуманы... Но видимо нам, тупым сишникам, не понять всю гениальность этого приема.
              Ответить
              • "Где здесь C++, skryisli?!" Обожаю эту надпись в форме комментов. А Вы её читаете?
                Массивы, как бы, для этого и придуманы. Чтобы $a1 $a2 $a3 и прочего китайского кода не писать.
                Ответить
                • $translit_from = array(...);
                  $translit_to = array(...);
                  Ответить
                  • Ну я, как бы, это и имел ввиду. :)
                    Ответить
                    • именно так и надо было бы, а то потом смотришь и думаешь, что, кто, имел ввиду :)
                      Ответить
                      • ;)
                        Ответить
                      • Резонно, но в проекте куча мест, где вагон разнообразных данных для одной цели. Я лучше над документацией поработаю. Зато человек по имени массива сразу весь раздел прочтёт, и больше к нему не вернётся.
                        Ответить
                        • > Резонно, но в проекте куча мест, где вагон разнообразных данных для одной цели.
                          Use structures/classes, Luke...

                          Ну или хотя бы массив со строковыми ключами. Ибо листать код туда-сюда между определением массива и тем местом где он юзается, при этом еще и отсчитывая его элементы, это сущий ад.
                          Ответить
    • Что ж, бывает...

      urineWs
      Ответить
    • В принципе не говнокод, но
      - я бы сделал два массива, а не вложенный;
      - у вас очень странный транслит;
      - за проверку вида if(!$_POST['uriNews']) надо что-нибудь да отрывать;
      - зачем вы используете небыструю библиотеку mb, когда str_ireplace может в русский язык;
      и наконец
      - зачем превращать все в большие буквы, а потом делать их маленькими?!
      Ответить
      • И, да, вы не выполнили поставленную задачу.
        Надо было, как я понял, делать урл по заголовку вида tolko-latinskie-bukvy.
        У вас же, если будет любой спецсимвол !"№;%:?*() - он попадет в урл.
        Ответить
        • Не пинайте лежачего. Приколы с регистром появились из-за того, что писалось всё за пять секунд из данных, которые сеошник в скайп скинул. Сам массив рисовался через Ctrl+R :( И не надо мне ничего отрывать за кривую проверку, само отвалится. Вот как ещё что-нибудь на коленках напишу, так сразу и отвалится. :(
          Ответить
    • показать все, что скрытопизда рулю:D
      Ответить
    • показать все, что скрытоКакой багор )))
      Ответить
      • Злой ты. :( Чтоб твой мобильник яндекс-директ узнал.
        Ответить

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