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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ($sum == 30) {
        return 24;
    } else {
        return $sum * 0.8;
    }

    stark, 28 Апреля 2011

    Комментарии (15)
  2. PHP / Говнокод #6498

    +160

    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
    function bigplus(){
    	$args = func_get_args();
    	$maxlength = 0;
    	$mlkey = 0;
    	$inmind = 0;
    	foreach($args as $key=>$arg){
    		$args[$key] = array_reverse(str_split($arg));
    		$length = count($args[$key]);
    		if($maxlength<$length){
    			$maxlength = $length;
    			$mlkey = $key;
    		}
    	}
    	for($pos=0; $pos<$maxlength; $pos++){
    		$c = 0;
    		for($i=0; $i<count($args); $i++){
    			if(!isset($args[$i][$pos])){
    				$args[$i][$pos]=0;
    			}
    			$c+=$args[$i][$pos];
    		}
    		$args[0][$pos] = $c+$inmind;
    		$inmind = floor(($args[0][$pos])/10);
    		$args[0][$pos] %= 10;
    	}
    	if($inmind>0){
    		$args[0][] = $inmind;
    	}
    	return implode(array_reverse($args[0]));
    }

    Народ, знаю что говнокод, помогите советом как исправить?
    Функция выводит результат сложения любого числа положительных чисел произвольной длины.
    Не придумал ничего умнее, чем реализовать сложение "в столбик".

    knes, 28 Апреля 2011

    Комментарии (63)
  3. PHP / Говнокод #6493

    +161

    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
    // Подходы различной национальности
    
    /* Первый */
    function filesize_format($bytes, $format = '', $force = ''){
       $force = strtoupper($force);
       $defaultFormat = '%01d %s';
       if (strlen($format) == 0)
       $format = $defaultFormat;
       $bytes = max(0, (int) $bytes);
       $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
       $power = array_search($force, $units);
       if ($power === false)
       $power = $bytes > 0 ? floor(log($bytes, 1024)) : 0;
       return sprintf($format, $bytes / pow(1024, $power), $units[$power]);
    }
    /* Второй */
    function files_size( $size )
    {
        $name = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
        $mysize = $size ? round( $size / pow(1024, ( $i = floor( log( $size, 1024 ) ) ) ), 2) .' ' .$name[$i] : $size.' Bytes';
        return $mysize;
    }
    /* Третий */
       function humanSize($size) {
          $a = array("bytes", "kb", "Mb", "Gb", "Tb", "Pb");
          $pos = 0;
          while ($size >= 1024) {
           $size /= 1024;
           $pos++;
          }
          return round($size,2)." ".$a[$pos];
         }

    Вопрос: Определите географические координаты места написания каждого...

    DoctorHouse, 27 Апреля 2011

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

    +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
    if(empty($value)) {
         $empty_colls++;
         $value = $value = str_replace(" ", "", $value);
    } else {
         $haystack=mb_convert_encoding($format_value, 'UTF-8', mb_detect_encoding($format_value));
         $needle=mb_convert_encoding('грн', "windows-1251", "UTF-8");
         if (strpos($haystack, $needle)) $currency='грн';
              else {
              $needle=mb_convert_encoding('€', "windows-1251", "UTF-8");
              if (strpos($haystack, $needle)) $currency= '€';
                   else {
                   $needle=mb_convert_encoding('$USD', "windows-1251", "UTF-8");
                   if (strpos($haystack, $needle)) $currency='USD';
                   }
             }
         $value = mb_convert_encoding($value,"UTF-8", mb_detect_encoding($value));
         ...
    }

    Даже не знаю с чего больше смеяться/плакать (исходники в UTF-8) :-)

    Lowezar, 27 Апреля 2011

    Комментарии (8)
  5. PHP / Говнокод #6488

    +169

    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
    function cp1251_to_utf8 ($txt)  {
            $in_arr = array (
                chr(208), chr(192), chr(193), chr(194),
                chr(195), chr(196), chr(197), chr(168),
                chr(198), chr(199), chr(200), chr(201),
                chr(202), chr(203), chr(204), chr(205),
                chr(206), chr(207), chr(209), chr(210),
                chr(211), chr(212), chr(213), chr(214),
                chr(215), chr(216), chr(217), chr(218),
                chr(219), chr(220), chr(221), chr(222),
                chr(223), chr(224), chr(225), chr(226),
            chr(227), chr(228), chr(229), chr(184),
                chr(230), chr(231), chr(232), chr(233),
                chr(234), chr(235), chr(236), chr(237),
                chr(238), chr(239), chr(240), chr(241),
                chr(242), chr(243), chr(244), chr(245),
                chr(246), chr(247), chr(248), chr(249),
                chr(250), chr(251), chr(252), chr(253),
                chr(254), chr(255)
            );  
            $out_arr = array (
                chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
                chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
                chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),
                chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
                chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),
                chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
                chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),
                chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
                chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),
                chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
                chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),
                chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
                chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),
                chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
                chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),
                chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
                chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),
                chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
                chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),
                chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
                chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),
                chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
            ); 
            $txt = str_replace($in_arr,$out_arr,$txt);
            return $txt;
        }

    Перекодировка cp1251 в UTF8
    http://mihalytch.org.ua/programming/php/convert-cp1251-utf8.html

    Случайно сотрудник использовал

    hunterman, 27 Апреля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function __TTT($txt)
    {
    	if (strlen($txt) > 0)
    	{
    		$fff = fopen($_SERVER["DOCUMENT_ROOT"]."/__ttt.txt", "a");
    		fwrite($fff, $txt."\n");
    		fclose($fff);
    	}
    }

    Магическая функция битрикса, видимо, для логирования чего-то, которая нигде не используется)
    Иногда мне правда кажется, что битрикс писали школьники.. :)

    greevex, 25 Апреля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function m($s, $re)
        {
            return preg_match($re, $s);
        }
    // ... чуть пониже ...
                if (!$this->m($caching_level, '/^[012]$/')) {
                    die(__CLASS__ . "::stem_caching() - Legal values are '0','1' or '2'. '$caching_level' is not a legal value");

    telnet, 25 Апреля 2011

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

    +162

    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
    $_i=1;
      $_stb = mysql_query("SELECT * FROM ".$admin_prefix."_catalog_title WHERE pub=1 ORDER BY sort, BINARY name");
      while($_rtb=mysql_fetch_assoc($_stb)){
        echo print_r($_rtb,2);
        $sql="SELECT * FROM ".$admin_prefix."_catalog_regions WHERE pub=1 AND region_id=0 AND (id IN (".implode(",",$_SESSION['terms']['toureastgroup_catalog_regions'])."))";
        $_s_reg=mysql_query($sql);
        while($_r_reg=mysql_fetch_assoc($_s_reg)){
            // определяем подрегионы региона
            $result_array=array();$all_current_regions_array=array();$all_current_regions_array_where=array();
            GetChildElements("region_id",$_r_reg['id'],$admin_prefix."_catalog_regions",$_SESSION['terms']['toureastgroup_catalog_regions']);
            $all_current_regions_array=$result_array;
            // добавляем сам регион
            
            $all_current_regions_array[]=$_r_reg['id'];
            // составляем условие региона
            foreach($all_current_regions_array as $v){									
              $all_current_regions_array_where[]="(region_id LIKE '%##".$v."##%')";									
            }
            $sql="SELECT * FROM ".$admin_prefix."_catalog_programms WHERE pub=1 AND title_id=$_rtb[id] AND (id IN (".$_SESSION['string_where_programms'].")) AND (".implode(" OR ",$all_current_regions_array_where).")";
            $_s_pr=mysql_query($sql);
            $_title_progs_id=array();
            while($_r_pr=mysql_fetch_assoc($_s_pr)){
              $_title_progs_id[]=$_r_pr['id'];
            }
            $_title_progs_where="(".implode(",",$_title_progs_id).")";
            
            $sql="SELECT * FROM ".$admin_prefix."_catalog_programs_tours WHERE price>0 AND start>=".(time()-36000)." AND pub=1 AND (programm_id IN ".$_title_progs_where.") ORDER BY start LIMIT 5";
            $_stours=mysql_query($sql);
            if(mysql_num_rows($_stours)>0){
                while($_rtours=mysql_fetch_assoc($_stours)){
                  echo '<pre>'.print_r($_rtours,2).'</pre>';
                  $_array_r=array();
                }
            }
       }
       $_i++;

    Простите не удержался, больше не могу раскапывать это...
    сайт ввв.toureastgroup.ру автор откликнись - плюну в лицо

    Sum, 25 Апреля 2011

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

    +161

    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
    $posts = $db->execAndReturnAll('select `id`, `user_id`, `theme_id`, `text` from `posts` order by `id` desc limit 5');
    
    $users = array();
    $themes = array();
    $groups = array();
    
    $l = sizeof($posts);
    for($i = 0; $i < $l; ++$i)
    {
    if(!in_array($posts[$i]['user_id']), $users)
        $users[] = $posts[$i]['user_id'];
    if(!in_array($posts[$i]['theme_id']), $themes)
        $themes[] = $posts[$i]['theme_id'];
    }
    
    $users = $db->execAndReturnAll('select `id`, `nick`, `group_id` from `users` where `id` in (0,'.implode(',', $users).')');
    $themes = $db->execAndReturnAll('select `id`, `name` from `themes` where `id` in (0,'.implode(',', $themes).')');
    
    $l = sizeof($users);
    for($i = 0; $i < $l; ++$i)
    {
    if(!in_array($users[$i]['group_id']), $groups)
        $groups[] = $users[$i]['group_id'];
    }
    
    $groups = $db->execAndReturnAll('select `id`, `name` from `groups` where `id` in (0,'.implode(',', $groups).')');

    qbasic, 24 Апреля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (is_array($custom_data)) {
    	foreach ($custom_data as $key => $val) {
    		$session[$key] = $val;
    	}
    }

    хитрый план

    DrFreez, 23 Апреля 2011

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