"PHP" / Говнокод #10962 Ссылка на оригинал

0

  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 skryisli, (Updated )

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

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

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

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8