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

    +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
    <?php
    //...
    while (($data = fgetcsv($handle, 1000, $this->CSV_SEPARATOR, $this->CSV_ENCLOSURE)) !== FALSE) {
    				$num = count($data);
    				$item = array();
    
    				for ($c=0; $c < count($data); $c++) {
    					$item[] = $data[$c];
    				}
    
    //некие действия с $item. $data больше нигде используется
    
    ?>

    Итого, $num не используется в цикле, да и сам по себе цикл - бесполезен, можно было сделать просто $item = $data; Не говоря уже о том, что можно просто использовать $data.

    Код из одного модуля для opencart.

    mr.The, 16 Января 2012

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

    +149

    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
    <?php
    function check_brackets($s)
    {
        $brackets = array('(' => ')' , '[' => ']', '{' => '}');
        $stack = array();
        
        for($i = 0; $i < strlen($s); $i++)
        {
            if(in_array($s[$i], array_keys($brackets)))
            {
                array_push($stack, $brackets[$s[$i]]);
            }
            elseif(in_array($s[$i], array_values($brackets)))
            {
                if(empty($stack) || array_pop($stack) != $s[$i])
                {
                    return false;
                }
            }
        }
        if(empty($stack)) return true;
    }
    
    if($_POST["bracket_string"] && $_POST["bracket_string"] <= 30)
    {
        if(check_brackets($_POST["bracket_string"]))
        {
            $message = "Check passed";
        }
        else $message = "Check failed";
    }
    
    ?>

    Финальная версия.

    varg242, 16 Января 2012

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

    +158

    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
    //Рекурсивная функция цепной проверки категории
    	function category(){
    		static $category;
    		static $level=0;
    		$myrow = mysql_query("SELECT id,pot_category FROM categroy WHERE sysname='".$_GET['do'][$level]."'");
    		if(mysql_num_rows($myrow)){
    		$result = mysql_fetch_assoc($myrow);
    		if($result['no_viev']==0){
    		if($result['sysname']==end($_GET['do'])){
    			return 'category';
    			}else{
    				$level++;
    				$this->category();
    				}
    				}else{return 'no_viev';}
    		}else{
    			//Если категории не найдено то показываем ошибку 404
    			return FALSE;}
    		
    		}

    Бессмысленная рекурсия

    lans8097, 16 Января 2012

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

    +150

    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
    function check($string_to_search) {
    $stack = array();
    foreach (preg_split("//", $string_to_search) as $char) {
    switch ($char) {
    case '{':
    case '(':
    case '[':
    array_push($stack, $char);
    break;
    case '}':
    if (array_pop($stack) != "{") return false;
    break;
    case ')':
    if (array_pop($stack) != "(") return false;
    break;
    case ']':
    if (array_pop($stack) != "[") return false;
    break;
    }
    }
    return true;
    }

    by kolen

    varg242, 16 Января 2012

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

    +146

    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
    <?php
    function check($s)
    {
        $brackets = array(')' => '(', ']' => '[', '}' => '{');
        $stack = array();
        $stack_size = 0;
        for($i = 0; $i < strlen($s); $i++)
        {
    	if (in_array($s[$i], array_values($brackets)))
            {
        	    $stack[$stack_size++] = $s[$i];
            }
            else if (in_array($s[$i], array_keys($brackets)))
            {
        	    $last = $stack_size ? $stack[$stack_size-1] : '';
                if ($last != $brackets[$s[$i]])
                {
            	return false;
        	    }
                else
                {
        		unset($stack[--$stack_size]);
        	    }
        	}
        }
        return count($stack) == 0;
    }
    
    function check_brackets($s)
    {
        if(check($s))
        {
            return true;
        }
        else return false;
    }
    
    if($_POST["bracket_string"])
    {
        if(check_brackets($_POST["bracket_string"]))
        {
            $message = "Check passed";
        }
        else $message = "Check failed";
    }
    
    ?>

    Пацаны, есть задание. Срочно заговнокодить код, но чтобы точно работало.

    varg242, 16 Января 2012

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if ($num > ($i-4)) {
    	$delta = $i - $num;	
    	if ($delta == 1) $num = $num - 3;
    	if ($delta == 2) $num = $num - 2;
    	if ($delta == 3) $num = $num - 1;
    }

    где i это кол-во элементов, num - текущий элемент, delta - разница между количеством и текущим
    Задача: уникализировать алгоритм. Мне не нравится вот это
    if ($delta == 1) $num = $num - 3;
    if ($delta == 2) $num = $num - 2;
    if ($delta == 3) $num = $num - 1;
    но как сделать это одной строкой пока придумать не могу...

    Single, 16 Января 2012

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if($row['status_id'] != 6){
        if($row['assist_type'] == 0){
            $row['assist_type'] == 3;
        }
        ...
    }

    :-|

    temka, 13 Января 2012

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

    +167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $zfunctv=0;
    if ($zfunctv==1 || $zfunctv==2 || $zfunctv==3 || $zfunctv==4) require_once('function1.php');
    if ($zfunctv==2 || $zfunctv==3) require_once('function2.php');
    if ($zfunctv==3 || $zfunctv==4) require_once('function3.php');
    if ($zfunctv==''){
    	require_once('function1.php');//Для всех окон
    	require_once('function2.php');//Для полноразмерных окон
    	require_once('function3.php');//Для оборудования
    	require_once('admfunct.php');
    }

    Какого хрена? Как это работает?! Код коммерческой системы UserSide v2.48

    Neka, 13 Января 2012

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $date_day = date("d");
    $date_month = date("m");
    $date_year = date("Y");
    $date_time = date("H:i");
    $date_cont = " " . $date_day . "-" . $date_month . "-" . $date_year . " " . $date_time;

    Вот так мы получаем дату строкой :)
    Впоследствии используется только $date_cont.

    andymitrich, 12 Января 2012

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    $headers = @get_headers("http://".$domen_name."/templates/form-".$_GET['id'].".tpl");
            if(preg_match("|200|", $headers[0])) 
            {
                $form = file_get_contents($root."/templates/form-".$_GET['id'].".tpl");

    Самая жестокая проверка на существование файла которую я видел в своей жизни.
    Кодеры не знали про file_exists()

    sqlhack, 11 Января 2012

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