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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    class location {
         private $url;
     
     
         function __construct($url) {
             $this->url = $url;
             $this->ruDecode();
         }
     
         private function ruIeConv($m) {
             $a1 = base_convert($m[1], 16, 10);
             $a2 = base_convert($m[2], 16, 10);
             # мальнькие буквы
             if($a1 == 208 && $a2 >= 176 && $a2 <= 191) return chr($a2+48);
             if($a1 == 209 && $a2 >= 128 && $a2 <= 143) return chr($a2+112);
             if($a1 == 209 && $a2 == 145) return 'ё';
             # большие
             if($a1 == 208 && $a2 >= 144 && $a2 <= 175) return chr($a2+48);
             if($a1 == 208 && $a2 == 129) return 'Ё';
             return $m[0];
         }
     
     
         private function ruFfConv($m) {
             return chr(base_convert($m[1], 16, 10));
         }
     
     
         private function ruDecode() {
             $this->url = str_replace('%20', ' ', $this->url);
             $this->url = preg_replace_callback('~%(D[01])%([0-9A-F]{2})~i', array($this, 'ruIeConv'), $this->url);
             $this->url = preg_replace_callback('~%([A-F][A-F0-9])~i',      array($this, 'ruFfConv'), $this->url);
         }
     
     
         function __toString() {
             return $this->url;
         }
     }
     echo new location('%D1%82%D0%B5%D0%B3%D0%B8'); // теги (windows-1251)

    UTF8->CP1251
    http://www.php.ru/forum/viewtopic.php?p=55678#55678

    Запостил: Мартин, 05 Июля 2011

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

    • Тру велосипед с квадратными колёсами. Давно на говнокоде таких не было.
      Ответить
    • не смешно. вы на год сообщения посмотрите!
      Ответить

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