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

    +159

    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 hash($password='', $unique_id=0)
        {
            $unique_id = $this-> unique_id();// by Lebnik: rand(0, time());
            $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
            $random_state = $unique_id;
            $random = '';
            $count = 6;
    
            //
            if (($fh = @fopen('/dev/urandom', 'rb')))
            {
                $random = fread($fh, $count);
                fclose($fh);
            }
    
            if (strlen($random) < $count)
            {
                $random = '';
    
                for ($i = 0; $i < $count; $i += 16)
                {
                    $random_state = md5($unique_id . $random_state);
                    $random .= pack('H*', md5($random_state));
                }
                $random = substr($random, 0, $count);
            }
    
            $hash = $this-> hash_crypt_private($password, $this-> hash_gensalt_private($random, $itoa64), $itoa64);
    
            if (strlen($hash) == 34)
            {
                return $hash;
            }
    
            return md5($password);
        }

    АД

    Tsukasa-mixer, 31 Января 2012

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

    +148

    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
    <?php
    function demotivator($image, $wheresave, $slogan1, $slogan2, $copyright) {
    $ext = getimagesize($image);
    // Открываем изображение
    switch($ext[2]) {
    
    	case 2: {$img = ImageCreateFromJPEG($image); break;}
    	case 1: {$img = ImageCreateFromGIF($image); break; }
    	case 3: {$img = ImageCreateFromPNG($image); break;}
    	case 6: {$img = ImageCreateFromBMP($image); break;}
    	default : {
    		unlink ($image);
    		return 2;
    	}
    }
    // Получение размеров изображения
    $x = ImageSX($img); // X
    $y = ImageSY($img); // Y
    // Размер черного прямоугольника, который будем рисовать
    $tx = $x * 0.1;
    $ty = $x * 0.1;
    $bx = $x + $tx;
    $by = $y + $ty;
    $dx= $x * 0.01; // Смещение. Необходимо для рисования рамки
    $dy= $x * 0.01;
    // Черный фон
    $black = ImageColorAllocate($img, 0, 0, 0);
    // Создаем новое изображение
    $img2 = ImageCreateTrueColor($bx + $tx, $by + $tx * 2.6);
    $black = ImageColorAllocate($img2, 0, 0, 0);
    // Масштабирование
    ImageCopyResized($img2, $img, $tx, $ty, 0, 0, $bx-$tx, $y, $x, $y);
    // Расчет смещений для рисования рамки
    $x1 = $tx;
    $y1 = $ty;
    $x2 = $bx;
    $y2 = $y + $ty;
    // Цвета рамки, слоганов и копирайта
    $col = ImageColorAllocate($img2, 255, 255, 255); // Цвет слоганов
    $col2 = ImageColorAllocate($img2, 255, 255, 255); // Цвет копирайта
    $col3 = ImageColorAllocate($img2, 255, 255, 255); // Цвет рамки
    // Рамки на изображении
    ImageRectangle($img2, $x1 - 5, $y1 - 5, $x2 + 4, $y2 + 4, $col3);
    ImageRectangle($img2, $x1 - 6, $y1 - 6, $x2 + 5, $y2 + 5, $col3);
    // Пишем слоганы, сначала с X=0, чтобы получить линейные размеры текста
    $s1 = ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + $ty, $col, "/times.ttf", $slogan1);
    $s2 = ImageTTFText($img2, 0.035 * $bx, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    // 1-й слоган не помещается в картинку - ошибка!
    if (($s1[2] - $s1[0]) > $bx + $tx) $sl1 = 1;
    $dx = (($bx + $tx) - ($s1[2] - $s1[0]))/2; // Смещение. Эта величина определяет центровку текста для 1-го слогана
    // Непосредственно текст. 1-й слоган
    ImageFilledRectangle($img2, 0, $y2 + 10, $bx + $tx, $by + $tx * 2.8, $black);
    ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + 1.1*$ty, $col, "/times.ttf", $slogan1);
    $dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2; // Смещение. Эта величина определяет центровку текста для 2-го слогана
    // Непосредственно текст. 2-й слоган (таглайн)
    if ($dx < 0)  {
    	// Текст не умещается в картинку, масштабируем.
    	$s = $s2[2] - $s2[0];
    	$size = (0.035 * $bx * $bx) /$s;
    	$s2 = ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    	$dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2;
    	ImageFilledRectangle($img2, 0, $by + 1.2* $tx, $bx + $tx, $by + $tx * 2.6, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    } else  {
    	$size = 0.035 * $bx;
    	ImageFilledRectangle($img2, 0, $by + 1.4*$tx, $bx + $tx, $by + $tx * 2.3, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    }
    // Copyright
    ImageTTFText($img2, $size/1.7, 0, 10, $by + $tx * 2.5, $col2, "/arial.ttf", $copyright);
    ImageJpeg($img2, $wheresave);
    ImageDestroy($img2);
    return 0;
    }
    ?>

    Код не мой, я просто разместил объяву.

    varg242, 31 Января 2012

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

    +148

    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
    /*
     @param array $menu_array Array of pages
     @param string $current Current page
     @return string $menu Menu.
    */
    function CreateMenu($menu_array, $current)
    {
        foreach($menu_array as $key => $value)
        {
            if($key == $current) $active = " class=\"active\"";
            
            $menu .= "<li$active><a href=\"$key\">$value</a></li>\n";
            unset($active);
        }
        
        return $menu;
    }

    varg242, 31 Января 2012

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /*
     @param string $ext File extension
     @return string Filename.
    */
    function GenFName($ext)
    {
        return md5(rand(rand(0, rand()), time())).md5(rand(rand(0, rand()), time())).".".$ext;
    }

    varg242, 31 Января 2012

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(count($MenuItem)>4) 
    {
    	$CONDITION = $MenuItem[4];
    	if(strlen($CONDITION)>0 && (!eval("return ".$CONDITION.";")))
    		$bSkipMenuItem = true;
    }

    1С-Битрикс: Управление сайтом 11.0.3

    tolic811, 31 Января 2012

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

    +157

    1. 1
    2. 2
    3. 3
    $topcellcolor = '"#e7e9f0" id="table_class_header"'; // заглавная строка
      $cellcolor1 =   '"#f8f9fb" id="table_class_1"'; // строка 1
      $cellcolor2 =   '"#FFFFFF" id="table_class_2"'; // строка 2

    Верстаем правильно...
    P.S. там нет дальше "строка 3", "строка 4", 5, 6,

    Чуете олдскульность? Раньше программеры были жесче! Это сейчас все расслабились со своими MVC, MVVM, декораторами, отделением бизнес-логики от кода и прочей чепухой...

    Nemoden, 31 Января 2012

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    for ($i=(((($start-4*$limit)/$limit) > 0) ? (($start-4*$limit)/$limit) : 0);$i < ( ((($start+5*$limit)/$limit) < ($count[0]/$limit)) ? (($start+5*$limit)/$limit)  : ($count[0]/$limit)) ;$i++)
                       {
    ...
    }

    Человек интересно сам понял бы через 10 минту что тут происходит.

    zxmd, 30 Января 2012

    Комментарии (8)
  8. 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)
  9. PHP / Говнокод #9258

    +153

    1. 1
    2. 2
    3. 3
    if (strcasecmp($fieldValue, "Array") == 0) {
        ...
    }

    f0rm4t, 30 Января 2012

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

    +158

    1. 1
    <td class="index"><?=isset($idx)?++$idx:$idx=1;?></td>

    Просто и понятно, особенно ночью

    nucleartux, 29 Января 2012

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