1. Список говнокодов пользователя Iliander

    Всего: 2

  2. PHP / Говнокод #10942

    +55

    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
    protected function _convertArrayToStr($arr = array()) {
    
    	$str = '';
    	$data = Controller::getSomeMethod();
    
    
    	$valus = array_values($arr);
    	$keys = array_keys($arr);
    	//Количество незаполненых полей
    	$count = 0;
    	// Формируем строку с title и введеных значени
    	for($i = 0; $i < count($arr); ++$i) {
    
    		if($keys[$i] == $data[$i]['name'] ) {
    			
    			if($valus[$i] == 'on') {
    				$valus[$i] = 'Да';
    			}
    
    			$str .= $data[$i+$count]['title'] . ": " . $valus[$i] . " \n";
    
    		}else{
    
    			$count++;
    			$str .= $data[$i+$count]['title'] . ": " . $valus[$i] . " \n";
    
    		}
    	}
    	return $str;
    
    }

    Стажер реализовал обход ассоциативного массива и преобразование значений массива в строку.

    Iliander, 13 Июня 2012

    Комментарии (6)
  3. bash / Говнокод #3242

    −136

    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
    #!/bin/bash
    case $1 in 
    	u|use)
    		case $2 in 
    			e) $EDITOR /etc/portage/package.use
    			;;
    			s) grep -n --color "$3" /etc/portage/package.use
    			;;
    			d) 
    			if echo "$3" | grep -q -e "[1-9]"
    			then
    			DELVAR="`echo $3 $4 $5 $6 $7 $8 $9 | sed 's/ /\n/g'`"
    			echo "Do you want delete next line(s):
    `echo "$DELVAR" | sed 's/$/!d/g' | xargs -n 1 | while read line ; do
    	sed "$line" /etc/portage/package.use -i
    done`			 
    Yes/No?"
    			read "answer"
    			case "$answer" in 
    			y|yes) echo "$DELVAR" | sed 's/$/d/g' | xargs -n 1 | while read yesno ; do
    	sed "$yesno" /etc/portage/package.use -i
    done
    ;;
    esac
    		else
    			DELVAR="`grep -n --color "$3" /etc/portage/package.use | cut -d":" -f1`"
    			echo "Do you want delete next line(s):
    `grep -n --color "$3" /etc/portage/package.use`
    Yes/No?"
    			read "answer"
    			case "$answer" in 
    			y|yes) echo "$DELVAR" | sed 's/$/d/g' | xargs -n 1 | while read yesno ; do
    	sed "$yesno" /etc/portage/package.use -i
    done
    			;;
    			esac
    			fi
    			;;
    			*) echo "$2 $3 $4 $5 $6 $7 $8 $9" >> /etc/portage/package.use
    			;;
    		esac
    	;;
    	i) euses $3
    	;;
    	s) eix "$3"
    	;;
    	sync) sudo layman --sync-all ; emerge --sync ; eix-update
    	;;
    	U) exec emerge -vauND world
    	;;
    	i) exec emerge -va "$2 $3 $4 $5 $6 $7 $8 $9"
    	;;
    	mkconf) sudoedit /etc/make.conf
    	;;
    	*|-h|--help) echo "Использование: pkg [ключ] [параметры ключа]
    	u [USE] - операции с USE-флагами в файле /etc/portage/package.use
    		e - открыть файл в редакторе из '\$EDITOR' ("$EDITOR")
    		s - поиск в файле grep'ом
    		d - удаление строк из файла (в качестве параметра принимаются как номера строк, так и название пакета/флага)
    		i - просмотр информации о флагах (с помощью euses) 
    		* - все иные значения будут записаны в файл
    	k [KEYWORDS] - операции с keywords-масками в файле /etc/portage/package.keywords
    		e - открыть файл в редакторе из '\$EDITOR' ("$EDITOR")
    		s - поиск в файле grep'ом
    		d - удаление строк из файла (в качестве параметра принимаются как номера строк, так и название пакета/флага)
    		* - все иные значения будут записаны в файл
    	i - установка пакета (emerge -av)
    	s - поиск по базе пакетов (с помощью eix)
    	sync - синхронизация баз layman, emerge и запуск eix-update
    	U - обновление системы (emerge -vauND world)
    	mkconf - открыть для редактирования файл /etc/make.conf (используя sudoedit)"
    	;;
    esac

    Нашел свой старый код.. Когда-то от нечего делать пытался написать некую обёртку ко всяким джентовским утилитам. До конца так и не дописал, были некоторые проблемы с кодом, которые мне решать было лень. Но сейчас залез в тот код и ужаснулся..
    P.S. Файл немного урезан от оригинала, т.к. те же действия повторяются для разных файлов.

    Iliander, 16 Мая 2010

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