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

    +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
    Example #3 preg_replace_callback() using recursive structure to handle encapsulated BB code
    <?php
    $input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";
    
    function parseTagsRecursive($input)
    {
    
        $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';
    
        if (is_array($input)) {
            $input = '<div style="margin-left: 10px">'.$input[1].'</div>';
        }
    
        return preg_replace_callback($regex, 'parseTagsRecursive', $input);
    }
    
    $output = parseTagsRecursive($input);
    
    echo $output;
    ?>

    Не знаю, баян или нет. Поиском не смог найти preg_replace_callback на этом сайте.
    В таком недлинном коде есть очень аппетитное дерьмецо (кроме языка). Если в качестве $input взять строку подлиннее, то интерпретатор, как Чак Норрис, сосчитает до бесконечности. Исправляется добавлением одного символа к коду.

    inkanus-gray, 03 Июля 2011

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

    +164

    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
    //Пришел  
    $in_h = "10"; 
    //Ушел 
    $exit_h = "19"; 
    //Для определения, ушел после полуночи или до 
    $metka = date(a); 
    if ($metka == "pm") { 
    echo ("24" - $in_h)-("24" - $exit_h);  
    } 
    else if ($metka == "am") 
    { 
    echo "am"; 
    echo "24" - $in_h + $exit_h;

    вычисление времени, проведенного на работе..

    AlexT, 03 Июля 2011

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

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function rustrtolower($s)
    	{
    		$from = array("А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","A","B","C","D","E","F","G","H","I","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","J");
    		$to =   array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","a","b","c","d","e","f","g","h","i","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","j");
    		return str_replace($from, $to, $s);
    	}

    Мартин, 02 Июля 2011

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if($inc == true){
         $counter_val = $cat[$this->FileCounterKey] + 1;
    }else{
         $counter_val = $cat[$this->FileCounterKey] - 1;
    }

    Класс деревьев в одной русской CMS. Метод пересчитывает кол-во файлов в категории после добавления/удаления.

    Мартин, 02 Июля 2011

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // Обработка запроса
    for ($i = 1; $i<=300000; $i++)
    {
    $marat=$marat+10;
    }

    Эмуляция паузы при генерировании РНР-скриптом ответа для Flash-ки (сайт - онлайн казино)

    dekameron, 01 Июля 2011

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

    +151

    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
    $currN = 0;
            $countN = count($news);        
            $currW = 0;
            $countW = count($wall);
            $time = time();
            $date = date('Y-m-d H:i:s');
    
            // Жестянка в сферическом ваккуме куба
    		foreach($lenta as $k => &$v)
    		{
    		    while (($v['DZ'] <= $news[$currN]['DZ']))
    		    {
    		        while (($news[$currN]['DZ'] <= $wall[$currW]['DZ']) && ($currW < $countW))
    		        {
    		            $this->create_time($wall[$currW]['DZ'], $time, $date);
    		            $this->display_wall($wall[$currW]);
    		            ++$currW;		            
    		        }
    		        $this->create_time($news[$currN]['DZ'], $time, $date);
    		        $this->display_news($news[$currN]);
    		        ++$currN;
    		    }
    		    $this->create_time($v['DZ'], $time, $date);
    			$this->display_lenta($v, $usr);
    		}
    		
    		while ($currN < $countN)
    		{
    		    while (($news[$currN]['DZ'] <= $wall[$currW]['DZ']) && ($currW < $countW))
    		    {
    		        $this->create_time($wall[$currW]['DZ'], $time, $date);
    		        $this->display_wall($wall[$currW]);
    		        ++$currW;
    		    }		
    		    $this->create_time($news[$currN]['DZ'], $time, $date);
    		    $this->display_news($news[$currN]);
    		    ++$currN;		
    		}
    		
    		while ($currW < $countW)
    		{
    		    $this->create_time($wall[$currW]['DZ'], $time, $date);
    		    $this->display_wall($wall[$currW]);
    		    ++$currW;
    		}

    Просто и со вкусом.

    advvzlol, 01 Июля 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $key = 0;
    foreach ($this->hosts as $key => $host) {
       $key++;
        .....
    }

    goliath, 01 Июля 2011

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

    +145

    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
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    <?php
    
    /* {{{ index */
    function creative_stat_default()
    {
        $dtime = urldecode(get_param('dtime', date('d.m.Y-d.m.Y')));
    
        list($begin_t, $end_t) = convert_date_calendar($dtime);
    
        $user = User::get_instance();
        $DB = DbSimple::getDb();
    
        $creatives_ids = $user->get_users_ids_by_roles(array('creative'));
    
        // user names
        $sql = " 
            SELECT user_id AS ARRAY_KEY, {$user->sql_case_names} as name
            FROM users
            WHERE user_id IN (?a)";
    
        $user_names = $DB->select($sql, $creatives_ids);
    
        // tasks all
        $sql = "
            SELECT to_user_id AS ARRAY_KEY, count(task_id) as tasks_all
            FROM creative_tasks 
            WHERE to_user_id IN (?a) AND dtime BETWEEN ?d AND ?d
            GROUP BY to_user_id
            ";
    
        $tasks = $DB->select($sql, $creatives_ids, $begin_t, $end_t);
    
        // tasks done
        $sql = "
            SELECT to_user_id AS ARRAY_KEY, count(task_id) as tasks_done
            FROM creative_tasks
            WHERE to_user_id IN (?a) AND dtime BETWEEN ?d AND ?d AND status_id = ?d
            GROUP BY to_user_id
            ";
    
        $tasks_done = $DB->select($sql, $creatives_ids, $begin_t, $end_t, GOODS_STATUS_ACTIVE);
    
        // goods all
        $sql = "
            SELECT creatives_id AS ARRAY_KEY, count(good_id) as goods_all
            FROM goods
            WHERE creatives_id IN (?a) AND date_create BETWEEN ?d AND ?d
            GROUP BY creatives_id
            ";
    
        $goods_all = $DB->select($sql, $creatives_ids, $begin_t, $end_t);
    
        // goods active
        $sql = "
            SELECT creatives_id AS ARRAY_KEY, count(good_id) as goods_active
            FROM goods
            WHERE creatives_id IN (?a) AND date_create BETWEEN ?d AND ?d AND status_id = ?d
            GROUP BY creatives_id
            ";
    
        $goods_active = $DB->select($sql, $creatives_ids, $begin_t, $end_t, GOODS_STATUS_ACTIVE);
    
        foreach($creatives_ids as $id) {
            $stat[$id] = array_merge(
                $user_names[$id], 
                isset($tasks[$id]) ? $tasks[$id] : array('tasks_all' => 0),
                isset($tasks_done[$id]) ? $tasks_done[$id] : array('tasks_done' => 0),
                array(
                    'tasks_not_ready' => (isset($tasks[$id]['tasks_all']) ? $tasks[$id]['tasks_all'] : 0) - 
                        (isset($tasks_done[$id]['tasks_done']) ? $tasks_done[$id]['tasks_done'] : 0)),
                isset($goods_all[$id]) ? $goods_all[$id] : array('goods_all' => 0),
                isset($goods_active[$id]) ? $goods_active[$id] : array('goods_active' => 0)
            );
        }
    
        render_tpl('creative/stat/index', array(
            'header'    => 'Статистика креатива',
            'dtime'     => $dtime,
            'stat'      => $stat
        ), 'creative#stat');
    }
    /* }}} */

    Собираю статистику. Каждый запрос возвращает массив с ключем = id пользователя, дальше это все клеится в один массив для отображения в табличке.

    Nicklasos, 30 Июня 2011

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

    +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
    $json = "";
    $json .= "{\n";
    $json .= "page: $page,\n";
    $json .= "total: $total,\n";
    $json .= "rows: [";
    $rc = false;
    
    while ($row = mysql_fetch_array($result)) {
    		if ($rc) $json .= ",";
    		$json .= "\n{";
    		$json .= "id:'".$row['id']."',";
    		$json .= "cltr: 'fo',";
    		$json .= "cell:['";
    		$json .= $row['secid'];
    
    		$json .="','".$row['blasttradedate'];
    
    		$json .="','".round($row['bid'],$row['decimals']);
    
    		$json .="','".round($row['offer'],$row['decimals']);
    
    		$json .="','".round($row['price'],$row['decimals']);
    
    		if(round($row['last'],$row['decimals'])) $json .="','".round($row['last'],$row['decimals']);
    		else $json .="', '";
    
                   // и еще много строк в том же духе
    }
    
    $json .= "]\n";
    $json .= "}";

    Сборка JSON по-джедайски

    maximum, 30 Июня 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
     * GetResponse
     * For common activation code length must be only 4 or 5 or 7 or 8 chars
     *
     * From XXX ... or 10
     * From YYY ... or 11
     *
     * @return string
     */

    эволюция

    elw00d, 30 Июня 2011

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