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

    +155.2

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    function search($source,$text)
    {
    
    $result = false;
    
    $searchfilms = "#<a class=\"all\" href=\"/level/1/film/(.*?)a>#si";
    $searchfilms2 = "#<font color=\"\#999999\">(.*?)</font>#si";
    
      while (preg_match_all ($searchfilms, $source, $matches))
      {
        preg_match_all($searchfilms2, $source, $matches2);
        foreach ($matches as $key => $temparray)
        foreach ($temparray as $key2 => $tempresult){
        $result[$key2] = $tempresult;
        $result[$key2] = preg_replace("#(.*?)/sr/1/\">(.*?)</#is", "<a href=\"?id=\\1\">\\2</a>", $result[$key2])."   ".$matches2[$key][$key2];
        }
     return $result;
      }
    }
    
    
    Парсер результатов с кинопоиска, отсюдова: http://bit-torrent.kiev.ua/arser_kinopoisk_ru-t3637/index.html
    Может я что-то не понимаю, но зачем так извращаться совсем не ясноне ясно, 3 вложенных  цикла О_о.   preg_match в while зачем совсем не ясно.
    
    Короче чтобы добавить сюда еще и год фильма, пришлось переписать... А хотелось AFAIK :)
    
    Короче AFAIK вышло вот так:
    
    
    function search($source, $text) {
    
    	$result = array();
    
    	$searchfilms = 	"#<a class=\"all\" href=\"/level/1/film/(.*?)/.*?>(.*?)<.*?a>.*?(\d{4}).*?#si";
    	$searchfilms2 = "#<font color=\"\#999999\">(.*?)</font>(.*?)#si";
    
    	preg_match_all ($searchfilms, $source, $matches);
    	preg_match_all($searchfilms2, $source, $matches2);
    
    	foreach ($matches[1] as $key => $temparray) {
    		$id = $matches[1][$key];
    		$name = $matches[2][$key];
    		$name_eng = $matches2[1][$key];
    		$year = $matches[3][$key];
    		
    		$result[] =  "<a href=\"?id=$id\">$name..$name_eng...($year)</a>";	
    	}
    
    	return $result;
    }
    
    p.s. ИМХО читабельнее в разы

    netdog, 21 Октября 2009

    Комментарии (10)
  2. C++ / Говнокод #2008

    +63.6

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    class WordCount{
    
    private:
    	string _t;
    	vector <int> _w;
    
    	int wc(){
    		string tw;
    		int s = 0;
    		for(int i = 0; i < _t.size(); ++i){
    			if(_t[i] == ' '){
    				tw.clear();
    				for(int j = s;j < i;++j){
    					tw += _t[j];
    				}
    				
    				size_t z = 0;
    				for(int k = 0; k < i - s; ++k){
    					int jj = 1;
    					for(int d = 0; d < k;  ++d)
    						jj *= 10;
    
    					z += jj * static_cast<int>(_t[k]);
    
    				}
    
    				bool sa = true;
    				for(int az = 0; az < _w.size(); ++az)
    					if(_w[az] == z) sa = false;
    				if(sa)_w.push_back (z);
    
    				s = i+1;
    			}
    		}
    		if(s < _t.size() ){
    			size_t z = 0;
    			for(int k = s;k < _t.size();++k){
    					
    					int jj = 1;
    					for(int d = 0; d < k;  ++d)
    						jj *= 10;
    
    					z += jj * static_cast<int>(_t[k]);
    			}
    
    			bool sa = true;
    				for(int az = 0; az < _w.size(); ++az)
    					if(_w[az] == z) sa = false;
    				if(sa)_w.push_back (z);
    		}
    		return _w.size();
    	}
    
    public:
    
    	int WordCount(string text){
    
    		_t = text;
    
    		return wc();
    
    	}
    };

    Клас, который должен был подсчитывать кол-во уникальных слов в строке.
    Наслаждайтесь, господа!

    hacker-l0maker, 21 Октября 2009

    Комментарии (14)
  3. JavaScript / Говнокод #2007

    +144.9

    1. 1
    <a href="javascript:void(0)" onclick="this.parentNode.submit(); return false;">Добавить</a>

    в ответ на http://govnokod.ru/1994 и длинный флуд в коментах.
    говнокод или нормально?

    tinimi, 20 Октября 2009

    Комментарии (61)
  4. PHP / Говнокод #2006

    +170.4

    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
    if (USER_LOGGED){
        if (empty($_POST ['namekomand']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['namekomand']))
        {echo '<h1 align="center">Имя команды не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
            else if (empty($_POST['2Gk']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST['2Gk']))
            {echo '<h1 align="center">id 1-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
                else if (empty($_POST['2Ld']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Ld']))
    	       {echo '<h1 align="center">id 2-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    		      else if (empty($_POST['2Cd1']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['Cd1']))
    		      {echo '<h1 align="center">id 3-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    			     else if (empty($_POST['2Cd2']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Cd2']))
    			     {echo '<h1 align="center">id 4-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    				    else if (empty($_POST['2Rd']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Rd']))
    				    {echo '<h1 align="center">id 5-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    					   else if (empty($_POST['2Lm']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Lm']))
    					   {echo '<h1 align="center">id 6-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    						  else if (empty($_POST['2Cm1']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Cm1']))
    						  {echo '<h1 align="center">id 7-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    							else if (empty($_POST['2Cm2']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Cm2']))
    							{echo '<h1 align="center">id 8-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    								else if (empty($_POST['2Rm']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Rm']))
    								{echo '<h1 align="center">id 9-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    									else if (empty($_POST['2Cf1']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST          ['2Cf1']))
    									{echo '<h1 align="center">id 10-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
    										else if (empty($_POST['2Cf2']) || preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2Cf2']))
    										{ echo '<h1 align="center">id 11-го игрока не задано или ЗАДАНО НЕВЕРНО!!!</h1>';}
                                               else if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2S1']))
                                               { echo '<h1 align="center">id 12-го игрока ЗАДАНО НЕВЕРНО!!!</h1>';}
                                               		else if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2S22']))
                                               		{ echo '<h1 align="center">id 13-го ЗАДАНО НЕВЕРНО!!!</h1>';}
                                               			else if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2S3']))
                                               			{ echo '<h1 align="center">id 14-го ЗАДАНО НЕВЕРНО!!!</h1>';}
                                               				else if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2S4']))
                                               				{ echo '<h1 align="center">id 15-го ЗАДАНО НЕВЕРНО!!!</h1>';}
                                               					else if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $_POST ['2S5']))
                                               					{ echo '<h1 align="center">id 16-го ЗАДАНО НЕВЕРНО!!!</h1>';}
              else {
    ...............
        }
    ?>

    Убил бы за такое ))

    mac1nt0sh, 20 Октября 2009

    Комментарии (14)
  5. C# / Говнокод #2005

    +130.6

    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
    //private byte[] dB; - строка, символ=1байт. Выше 128 - русские буквы.
    
                StringBuilder sb = new StringBuilder(len);
                for (int k = 0; k < len; k++)
                    if (dB[k] < 127)
                        sb.Append((char)dB[k]);
                    else
                    {
                        if (dB[k] != 185)
                            sb.Append((char)(dB[k] + 848)); // Преобразование в нужную кодировку.
                        else
                            sb.Append((char)8470);      // Отдельное преобразование символа №
                    }

    Преобразование строки (скорее всего в кодировке CP-1251) в юникод.
    Не знаю как сделать по-человечески. Может кто подскажет?

    greeny, 20 Октября 2009

    Комментарии (3)
  6. Java / Говнокод #2004

    +72.2

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    private char readNextChar() throws IOException {
            synchronized (in) {
                if (plain) {
                    if (BANDWIDTH_DEBUG) {
                        CasinoServer.bandwidthChecker.addClientMessageReceived(1);
                    }
                    int c = in.read();
                    if (c == -1) {
                        throw new IOException("Client disconnected");
                    }
                    return (char) c;
                }
                if (num_bytes_read % 5 == 0) {
                    if (!isNgClient()) {
                        last_byte_read = readURLEncodedChar();
                    } else {
                        if (BANDWIDTH_DEBUG) {
                            CasinoServer.bandwidthChecker.addClientMessageReceived(1);
                        }
                        int c = in.read();
                        if (c == -1) {
                            throw new IOException("Client disconnected");
                        }
                        last_byte_read = c & 0xff;
                    }
                    ++num_bytes_read;
                }
                int x;
                if (!isNgClient()) {
                    x = readURLEncodedChar();
                } else {
                    if (BANDWIDTH_DEBUG) {
                        CasinoServer.bandwidthChecker.addClientMessageReceived(1);
                    }
                    int c = in.read();
                    if (c == -1) {
                        throw new IOException("Client disconnected");
                    }
                    x = c & 0xff;
                }
                last_byte_read ^= x;
                int y = last_byte_read;
                last_byte_read = (x & 0xff);
                ++num_bytes_read;
                return (char) (y & 0xff);
            }
        }

    This is the ingenious algorithm, invented by the estonians to read a simple byte from a socket. Couldn't think of anything more error-prone, and less readable. Enjoy!

    bot225, 20 Октября 2009

    Комментарии (0)
  7. C# / Говнокод #2003

    +144.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    string str=...;
    
    if(str!=null && str.Length>0)
    {
    ....
    }

    Без комментариев

    AndrewK, 20 Октября 2009

    Комментарии (8)
  8. C# / Говнокод #2002

    +126.6

    1. 1
    2. 2
    3. 3
    4. 4
    if (websites.Any() && websites.Count() > 1)
    {
    ....
    }

    Без комментариев

    AndrewK, 20 Октября 2009

    Комментарии (7)
  9. PHP / Говнокод #2001

    +159.7

    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
    if ($CURUSER) 
    {
    
         if ($CURUSER['class'] >= UC_SYSOP) {
              $a = sql_query("SELECT id FROM hackers WHERE 1");
              $b = mysql_num_rows($a);
    
            }
    
    mysql_num_rows($a);
              if($b>0){
                    $menu = "<a class=menu href='/hackers.php'>&nbsp;Хакеры (".$b.")</a>";
                    blok_menu("<center>Безопасность</center>", $menu , "155");
              }
         }

    Не знал человек ни о том, как узнать количество, ни о том, что этому языку повторять не нужно

    Alexmaru, 20 Октября 2009

    Комментарии (0)
  10. C# / Говнокод #2000

    +99.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //Use the Name field
    string[] nameParts = customer.Name.Split(' ');
    
    string firstName = nameParts[0];
    string lastName = customer.Name.Replace(nameParts[0], "").TrimStart(' ');

    Как вам такое разбиение полного имени на части?!

    pmalyavkin, 20 Октября 2009

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