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

    +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
    class CIBlockFindTools
    
    ...
    
    function GetSectionID($section_id, $section_code, $arFilter)
    {
    	$section_id = intval($section_id);
    	if($section_id > 0)
    	{
    		return $section_id;
    	} else if(){
                  }
                 return 0;
    ...
    }

    битрикс суров, использует свою реализацию intval(). как мы могли без этого жить?

    hunterman, 29 Апреля 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $lu=0;
    $ray_array = file("allray.txt");
    while (empty($rayon)) //пока район не заполнен значением
    {
    preg_match("#".trim($ray_array[$lu++])."#", $text, $rayon);
    }

    Многострочный поиск

    Uchkuma, 29 Апреля 2011

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($result === false) {
                $result = $translated;
            }
    
            if ($result === false){
                $result = $translated;
            }

    Magento. Так работают переводы.

    vsushkov, 28 Апреля 2011

    Комментарии (8)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)