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

    0

    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 numeral($s, $t1, $t3, $t5)
    {
    	$s = intval($s) % 100;
    	$z2 = intval($s / 10);
    	$z3 = $s % 10;
    	return ($z3 == 0) || ($z3 > 4) || ($z2 == 1)
    	       ? $t5
    	       : (($z3 > 1) && ($z3 < 5) ? $t3 : $t1);
    }
    
    function fileSizeInKB($size)
    {
        if ($size < 1024) {
            return intval($size) . '&nbsp;' . numeral($size, 'байт', 'байта', 'байтов');
        } else {
            $size /= 1024;
            if ($size < 1024)
                return intval($size) . '&nbsp;КБ';
            else
                return intval($size / 1024) . '&nbsp;МБ';
        }
    }

    high top pluralization method

    SeniorShaurman, 16 Ноября 2017

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

    +5

    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
    <?php
     
    class Govno
    {
    	function __toString()
    	{
    		return 'govno';
    	}
    }
     
    ${'<?php'}   = 42;
    ${M_PI}      = 43;
    ${new Govno} = 44;
    ${"\0"}      = 45;
    ${''}        = 46;
    ${null}      = 47;
     
    ${create_function('', 'return null;')} = 444;
    ob_start();
    phpinfo();
    ${ob_get_clean()} = 9000;
     
     
    var_dump(get_defined_vars());

    В ПХП возможно всё, если делать это через жопу.
    https://ideone.com/svS2sO

    Stallman, 16 Ноября 2017

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

    −1

    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
    <?foreach($RObl as $v) {$n++;?>
    <li>
    <?if(!empty($v['URL_HOST'])) switch ($v['SOCR']) {?>
    <?	case 'обл.':?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>"><?=$v['NAME']?> область</a>
    <?		break;?>
    <?	case 'край':?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>"><?=$v['NAME']?> край</a>
    <?		break;?>
    <?	case 'Респ.':?>
    <?if(substr($v['NAME'],-2)!=='ая') {?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>">Республика <?=$v['NAME']?></a>
    			<?;} else {?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>"><?=$v['NAME']?> республика</a>
    			<?}?>
    <?		break;?>
    <?	case 'АО':?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>">АО <?=$v['NAME']?></a>
    <?		break;?>
    <?	case 'Аобл.':?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>"><?=$v['NAME']?> автономная область</a>
    <?		break;?>
    <?	default:?>
    <a href="http://<?if(isSet($v['URL_HOST']) and $v['URL_HOST']!='') echo $v['URL_HOST']."/";?>"><?=$v['SOCR']?> <?=$v['NAME']?></a>
    <?}?>
    </li>

    Падаван Дмитрия Котерова

    SeniorShaurman, 15 Ноября 2017

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

    0

    1. 1
    2. 2
    3. 3
    https://github.com/VKCOM/bot-example-php/blob/master/html/bot/bot.php
    
    В великом и недосягаемом "ВКонтакте" переменные в текст по-прежнему включают с помощью фигурных скобок.

    COWuTEJIbTBOEuMAMKu, 14 Ноября 2017

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // PHP при делении может неявно конвертировать целые в плавающие, и всех этих int-ограничений для него не существует
    echo 12 / 5; // 2.4
    
    // Было бы логично предположить, что другие операторы работают так же, но эта камбала неявно кастует уже плавающее к целому в соседнем операторе
    echo 9 % 0.9;
    
    PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in Command line code:1
    Stack trace:
    #0 {main}
      thrown in Command line code on line 1

    Fike, 13 Ноября 2017

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

    +1

    1. 1
    ideone.com/LfENd1

    Вот мне всегда говорили, что NaN не равен ничему включая себя, но PHP перевернул мой мир

    d_fomenok, 12 Ноября 2017

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

    −1

    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
    var varijabl = "<?php
    
                            if (isset($_SERVER['HTTP_REFERER'])) {
                                if ($_SERVER['HTTP_REFERER'] == "http://%hostname%/profile_edit") {
                                    echo "1";
                                } else {
                                    echo "0";
                                }
                            } else {
                                echo "0";
                            } ?>";
                        if (varijabl == 1) {
                            alert("Sucessfuly saved");
                        }

    Зачем?

    vadim-job-hg, 09 Ноября 2017

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

    −2

    1. 1
    PHP - самое большое говно которое я встречал. Стив Джобс

    samopisiets, 09 Ноября 2017

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($count == 1 or $count == 21 or $count == 31 or $count == 41 or $count == 51 or $count == 61 or $count == 71 or $count == 81) ( $str = ' товар');
            if ($count == 2 or $count == 3 or $count == 4 or $count == 22 or $count == 23 or $count == 24 or $count == 32 or $count == 33 or $count == 34 or $count == 42 or $count == 43 or $count == 44 or $count == 52 or $count == 53 or $count == 54 or $count == 62 or $count == 63 or $count == 64) ( $str = ' товара');
            if ($count == 5 or $count == 6 or $count == 7 or $count == 8 or $count == 9 or $count == 10 or $count == 11 or $count == 12 or $count == 13 or $count == 14 or $count == 15 or $count == 16 or $count == 17 or $count == 18 or $count == 19 or $count == 20 or $count == 25 or $count == 26 or $count == 27 or $count == 28 or $count == 29 or $count == 30 or $count == 35 or $count == 36 or $count == 37 or $count == 38 or $count == 39 or $count == 40 or $count == 45 or $count == 46 or $count == 47 or $count == 48 or $count == 49 or $count == 50 or $count == 55 or $count == 56 or $count == 57 or $count == 58 or $count == 59 or $count == 60 or $count == 65) ( $str = ' товаров');
    
            if ($count > 81){
                $str=" тов";
            }

    Бронебойный pluralize

    arth, 05 Ноября 2017

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

    +1

    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
    $probabilities=array();
    $get_items=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' ORDER BY `probability` DESC;");
    while($item=mysql_fetch_assoc($get_items)){
    $probabilities[$item['probability']]=0;
    }
    $dices=$probabilities;
    for($pi=100;$pi>=0;$pi--){
    foreach($probabilities as $probability=>$pstate){
    if(rand(1, 2)==2){
    if($pi<=$probability){
    $dices[$probability]=$dices[$probability]+1;
    }
    }	
    }
    }
    arsort($dices, SORT_NUMERIC);
    $probability=reset(array_keys($dices));
    $get_prize=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' AND `probability`='".$probability."' ORDER BY RAND() LIMIT 1;");

    Написал с нуля на заказ движок для очередного детского говноказино (розыгрыш пикселей для игр в "Steam").
    Заказчик умолял сделать возможность управления вероятностью выпадения того или иного предмета (в процентах), что я и сделал. Вышеприведённый алгоритм как раз отвечает за выбор приза в соответствии с прописанными в настройках вероятностями. Сейчас кажется, что решение не самое "изящное".
    Есть, что заметить по поводу алгоритма?

    AnalPerOral, 02 Ноября 2017

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