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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function utf8win1251($s){
      $out=""; $c1=""; $byte2=false;
      for ($c=0;$c<strlen($s);$c++){
        $i=ord($s[$c]); if ($i<=127) $out.=$s[$c];
        if ($byte2) { $new_c2=($c1&3)*64+($i&63); $new_c1=($c1>>2)&5;
          $new_i=$new_c1*256+$new_c2;
          if ($new_i==1025) $out_i=168; else
          if ($new_i==1105) $out_i=184; else $out_i=$new_i-848;
          $out.=chr($out_i); $byte2=false; }
        if (($i>>5)==6) {$c1=$i;$byte2=true; } }
     return $out; }

    Я ничо не понял, но это круто.

    http://letopisi.ru/index.php/Знаете-ли-что%3F_скрипт

    Запостил: 7ion, 25 Августа 2011

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

    • Я призываю сюда капитана, чтобы он объяснил ($c1&3)*64+($i&63), ($c1>>2)&5 и (($i>>5)==6) .
      Кстати, очевидно, что товарищ пересел с Турбо Паскаля, такому БДСМу только в книжках по этому языку суровые педагоги средней Урюпинской школы №34 учат.
      Ответить
      • >(c1&3)*64+(i&63), (c1>>2)&5 и ((i>>5)==6)
        Сам ты БДСМ...
        ПАЦАНЫ, Я СЕГОДНЯ ШЁЛ ГЛАЗАМИ КОРОЧЕ ПО КОДУ И УВИДЕЛ ТЕКСТ В ОДНОСТРОЧНОМ КОММЕНТАРИИ "В СТИЛЕ С++", НУ Я ПОДСКОЧИЛ И РЕЗКО УДАЛИЛ ЕГО В ЩЩИ С ВЕРТУШКИ И ПОЯСНИЛ ЕГО КРИКОМ "НЕ ПОДДЕРЖИВАЕТ КОММЕНТАРИИ СИ++", ПОТОМУ ЧТО Я УГОРЕЛ ПО АНСИ СИ, ПАЦАНЫ ДУХ СТАРОЙ ШКОЛЫ ЖИВЁТ ТОЛЬКО В ЧИСТОМ СИ, ГДЕ ЕБАШАТСЯ ПО ХАРДКОРУ, ГДЕ ПАЦАНЫ ЖИВУТ УКАЗАТЕЛЯМИ, МАССИВАМИ ВМЕСТО СТРОК И ЕБУТ ООП В РОТ! ТОЛЬКО АНСИ СИ, ТОЛЬКО СКОРОСТЬ!!! ЮНИТИ УЛЬТРААНСИСИ ПИЗДОС!!! пацаны ебашьте сишарперов, дельфистов, угорайте на компиляции в натив, любите свою СИ-мью, свободу прямой работы с памятью, равенство ==, братство томпсона и ритчи и Юникс! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В КОНСОЛЬ! АНСИ СИ!
        Ответить
      • Битовые флаги.
        Ответить
      • Че не понятного-то?
        $c & 3 - побитовое сложение
        * 64 - обычное умножение
        $c >> 2 двигаем побитово вправо на 2 позиции
        и т.д.
        Ответить
        • Похоже, я из того поколения школяров-уебпрограммистов, для которых эти действия из разряда шаманских.
          Ответить
          • Что же вы, базу надо знать. C пока ещё в почёте: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
            Кстати, судя по этому индексу, Ada рвётся вверх. Тарас поднапрягся, не иначе.
            Ответить

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