1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #9318

    +155

    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
    /**
    	 * return the current rule value
    	 * @param String $rule
    	 * @return Mixed
    	 */
    	public static function findRule($rule)
    	{
    		$criteria=new CDbCriteria;
    		$criteria->compare('rule',$rule);
    		$model = self::model();
    		$model->scenario = 'find_rule';
    		$result = $model->find($criteria);
    		if ($result !== NULL) {
    			if ($result->value === 'TRUE')
    				$result->value = true;
    			if ($result->value === 'FALSE')
    				$result->value = false;
    			return $result->value;
    		}else
    			return false;
    	}

    Найдено в расширении для Yii Framework
    Расширение userGroups
    Расширение полезное, но пришлось переписать под себя кучу

    delancer, 04 Февраля 2012

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

    +155

    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
    lili at nikha dot org 04-Apr-2011 04:02 
     Keep it simple! 
     For associative arrays, my replacement for list() is this:
    <?php
    foreach ($associative_array as $key => $value) { $$key = $value; }
    ?>
    
     Example:
    <?php
     $petnames = array();
    $petnames['dog'] = 'Paul';
    $petnames['cat'] = 'Lili';
    
     foreach ($petnames as $name => $value) { $$name = $value; }
    
     echo 'my pets are '.$dog.' and '.$cat;
    ?>
    
     Will give you:
     my pets are Paul and Lili

    Коммент к функции list() в мануале. В See Also был extract(), но видимо далбоёбов это не останавливает.

    DrFreez, 30 Января 2012

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

    +155

    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
    <?php
    function variation($name, $cache = true)
    {
        $hach = md5($name);
        //Проверяем кэш, если его нет - делаем запрос к API(JSON).
        if (!file_exists('cache/variation/' . $hach . '.cache')) {
            $c = file_get_contents('http://export.yandex.ru/inflect.xml?name=' . urlencode($name) . '&format=json');
            //Записываем кэш
            if ($cache === true) {
                file_put_contents('cache/variation/' . $hach . '.cache', $c);
            }
        }
        //Если кэш есть - берем оттуда.
        else {
            $c = file_get_contents('cache/variation/' . $hach . '.cache');
        }
        //Возвращаем массив(Функция работает только с UTF-8)
        return json_decode($c, true);
    }
    $arr = variation('Москва');
    /*
    //Переводим в cp1251(JSON).
    $arr = variation('Москва');
    //Для всего массива
    function _iconv($val)
    {
    return iconv('utf-8', 'cp1251', $val);
    }
    $arr = array_map('_iconv', $arr);
    //Или для отдельного элемента
    $arr[1] = iconv('utf-8', 'cp1251', $arr[1]);
    */
    echo 'Оригинал: ', $arr['original'], '<br/>';
    echo 'Именительный: ', $arr[1], '<br/>';
    echo 'Родительный: ', $arr[2], '<br/>';
    echo 'Дательный: ', $arr[3], '<br/>';
    echo 'Винительный: ', $arr[4], '<br/>';
    echo 'Творительный: ', $arr[5], '<br/>';
    echo 'Предложный: ', $arr[6], '<br/>';

    http://moicoding.ru/php-poleznosti/8-Yandeks-sklonyator

    Unknown, 19 Января 2012

    Комментарии (29)
  5. 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)
  6. PHP / Говнокод #9079

    +155

    1. 1
    2. 2
    foreach ($period_range as $k=>$v) 
    	{?><option value="<?=$k?>"<?=($k==$period)?' selected':''?>><?=$v?></option><?}

    Накодил как-то...

    zima, 11 Января 2012

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

    +155

    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
    <?
    if ($id != "") {
    	$id--;
    	$file=file("file.txt"); 
    
    	for($i=0;$i<sizeof($file);$i++)
    		if($i==$id) unset($file[$i]); 
    
    	$fp=fopen("file.txt","w"); 
    	fputs($fp,implode("",$file)); 
    	fclose($fp);
    	}
    ?>

    http://www.codenet.ru/webmast/php/delstr.php вот нарыл говнокод.
    OMG!WTF?!
    Неужели,люди забыли про file_put_contents ?

    An0nimous, 05 Января 2012

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

    +155

    1. 1
    2. 2
    3. 3
    $string = "http://site.ru/1/";
    if(get_magic_quotes_runtime()) $string = stripslashes($string);
    $query = "INSERT INTO `table` (`col1`,`col2`) VALUES ('$string','0');"

    В довольно таки популярном враппере для работы с субд мускуля...

    govnophp, 04 Января 2012

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function some_function ($aa, $bb) {
            $col_names = _cfg::get('ccc');
            foreach ($bb as $key => $value) {
                $bb[$key][0] = array_search($bb[$key][0], $aa);
                $bb[$key][1] = array_search($bb[$key][1], $aa);
                
                foreach ($this->currency_names as $currency_key => $currency_value) {
                    if ($oil_array[$key][5] == $this->currency_names[$currency_key]['name']) $oil_array[$key][5] = $this->currency_names[$currency_key]['id'];
                }
                $bb[$key] = array_combine($col_names, $bb[$key]);
            }
            return $bb;

    продолжение с Говнокод #8566

    jf4ever, 18 Ноября 2011

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function check_confirm()
    {
    	var conf=confirm("Вы действительно хотите изменить описание?");
    	if (conf==false)
    	{			
    		event.returnValue=false;
    	}
    }

    facepalm

    DrFreez, 15 Ноября 2011

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

    +155

    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
    function toCyrillicTranslit($title)
    {
        $title = trim($title);
        
        $title = str_replace("&#192;", "А", $title);
        $title = str_replace("&#193;", "А", $title);
        $title = str_replace("&#194;", "А", $title);
        $title = str_replace("&#195;", "А", $title);
        $title = str_replace("&#196;", "А", $title);
        $title = str_replace("&#197;", "А", $title);
        $title = str_replace("&#198;", "А", $title);
        $title = str_replace("&#199;", "С", $title);
        $title = str_replace("&#200;", "Е", $title);
        $title = str_replace("&#201;", "Е", $title);
        $title = str_replace("&#202;", "Е", $title);
        $title = str_replace("&#203;", "Е", $title);
        $title = str_replace("&#204;", "И", $title);
        $title = str_replace("&#205;", "И", $title);
        $title = str_replace("&#206;", "И", $title);
        $title = str_replace("&#207;", "И", $title);
        $title = str_replace("&#208;", "Д", $title);
        $title = str_replace("&#209;", "Н", $title);
        $title = str_replace("&#210;", "О", $title);
        $title = str_replace("&#211;", "О", $title);
        $title = str_replace("&#212;", "О", $title);
        $title = str_replace("&#213;", "О", $title);
        $title = str_replace("&#214;", "О", $title);
        $title = str_replace("&#215;", "х", $title);
        $title = str_replace("&#216;", "О", $title);
        $title = str_replace("&#217;", "У", $title);
        $title = str_replace("&#218;", "У", $title);
        $title = str_replace("&#219;", "У", $title);
        $title = str_replace("&#220;", "У", $title);
        $title = str_replace("&#221;", "У", $title);
        $title = str_replace("&#222;", "П", $title);
    // и так далее ...

    kolexander, 02 Ноября 2011

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