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

    +6

    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
    function utf8ToCp1251($s,$type="w") {
        if ((is_string($s) && strlen($s)>0) && ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8"))    { 
            $out="";
            for ($c=0;$c<strlen($s);$c++)         { 
                $i=ord($s[$c]); 
                if ($i<=127) @$out.=$s[$c]; 
                if (@$byte2)     { 
                    $new_c2=($c1&3)*64+($i&63); 
                    $new_c1=($c1>>2)&5; 
                    $new_i=$new_c1*256+$new_c2; 
                    if ($new_i==1025) { 
                        $out_i=168; 
                    } else { 
                        if ($new_i==1105) { 
                            $out_i=184;
                        } else { 
                        $out_i=$new_i-848; 
                        } 
                    } 
                    @$out.=chr($out_i); 
                    $byte2=false; 
                } 
                
                if (($i>>5)==6)  { 
                  $c1=$i; 
                  $byte2=true; 
                } 
            } 
            return $out; 
        } 
        else return $s; 
    }

    Одна из стандартных функций битрикса.
    Видимо iconv им не знаком...

    tanur, 17 Марта 2016

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

    +2

    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
    83. 83
    //получаем Элемент 
    $resource = CIBlockElement::GetByID($Bid);
    if ($ob = $resource->GetNextElement())
    {
        //вытягиваем поля, свойства
        $arFields = $ob->GetFields();
        $arFields['PROPERTIES'] = $ob->GetProperties();
    	
        // удаляем все поля, нахрен мы их вообще выдергивали
        $arFieldsCopy = $arFields;
    	unset(
    		$arFieldsCopy['ID'], 
    		$arFieldsCopy['~ID'], 
    		$arFieldsCopy['IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['~IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['TIMESTAMP_X'], 
    		$arFieldsCopy['~TIMESTAMP_X'], 
    		$arFieldsCopy['ACTIVE_TO'], 
    		$arFieldsCopy['~ACTIVE_TO'], 
    		$arFieldsCopy['DATE_ACTIVE_TO'], 
    		$arFieldsCopy['~DATE_ACTIVE_TO'], 
    		$arFieldsCopy['PREVIEW_PICTURE'], 
    		$arFieldsCopy['~PREVIEW_PICTURE'], 
    		$arFieldsCopy['PREVIEW_TEXT'], 
    		$arFieldsCopy['~PREVIEW_TEXT'], 
    		$arFieldsCopy['DETAIL_PICTURE'], 
    		$arFieldsCopy['~DETAIL_PICTURE'], 
    		$arFieldsCopy['DETAIL_TEXT'], 
    		$arFieldsCopy['~DETAIL_TEXT'], 
    		$arFieldsCopy['XML_ID'], 
    		$arFieldsCopy['~XML_ID'], 
    		$arFieldsCopy['EXTERNAL_ID'], 
    		$arFieldsCopy['~EXTERNAL_ID'], 
    		$arFieldsCopy['TMP_ID'], 
    		$arFieldsCopy['~TMP_ID'], 
    		$arFieldsCopy['CODE'], 
    		$arFieldsCopy['~CODE'], 
    		$arFieldsCopy['SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['~SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['~WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['WF_COMMENTS'], 
    		$arFieldsCopy['~WF_COMMENTS'], 
    		$arFieldsCopy['WF_DATE_LOCK'], 
    		$arFieldsCopy['~WF_DATE_LOCK'], 
    		$arFieldsCopy['WF_LOCKED_BY'], 
    		$arFieldsCopy['~WF_LOCKED_BY'], 
    		$arFieldsCopy['WF_NEW'], 
    		$arFieldsCopy['~WF_NEW'], 
    		$arFieldsCopy['WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['~WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['SHOW_COUNTER'], 
    		$arFieldsCopy['~SHOW_COUNTER'], 
    		$arFieldsCopy['TAGS'], 
    		$arFieldsCopy['~TAGS'], 
    		$arFieldsCopy['LOCKED_USER_NAME'], 
    		$arFieldsCopy['~LOCKED_USER_NAME'], 
    		$arFieldsCopy['SHOW_COUNTER_START'],
    		$arFieldsCopy['~SHOW_COUNTER_START']
    	);
           
         
            $arFieldsCopy['ACTIVE']='N';
    	$arFieldsCopy['ACTIVE_FROM']=date('d.m.Y');
           /*... тра тра та заполняю я поля ....*/ 
    
         $arFieldsCopy['PROPERTY_VALUES'] = [
           /* ... тра та та, 
                         тра та та,
                            заполняю свойства я  
                ...
          */
         ];
           /*
               ... Продолжая песню петь
                       удалю я все теперь 
               ...
           */
    	unset($arFieldsCopy['PROPERTIES']);
       // кульминация пьесы, добавление нового Элемента 
        $el = new CIBlockElement();
        $NEW_BID_ID = $el->Add($arFieldsCopy);
    }

    Эм.... толи память экономит, то ли оплата за код построчно ....

    BroadcastAddress, 16 Марта 2016

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

    −1

    1. 1
    if ( strpos(str_replace('"', "'", json_encode($opt)), "'status':0") )

    Зачем

    crook, 16 Марта 2016

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

    +2

    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
    //#1
     $queryo = "SELECT * FROM `tx_carmodels` WHERE  1 <= ID AND ID <= (SELECT COUNT(*) FROM `tx_carmodels`) ";
     $resulto = mysql_query($queryo);
     $sqlresos = mysql_fetch_assoc($resulto);
     foreach  ($sqlresos as $sqlreso){
            $preVendor[] = $sqlreso["vendor"];
                      //  print_r($sqlreso);
     }
     $arVendor = array_unique($preVendor);
     foreach($arVendor as $vendor) {
                        echo '<option value="'.$vendor.'">'.$vendor.'</option>';
       }
    // #2
    
    $query = "SELECT count(*) FROM `tx_carmodels`";
    $result = mysql_query($query);
    $res = mysql_fetch_array($result);
    $allinfile = $res[0];
    
         for ($i = 1; $i <= $allinfile; $i++) {
               $queryo = "SELECT * FROM `tx_carmodels` WHERE id=$i";
               $resulto = mysql_query($queryo);
               $sqlreso = mysql_fetch_assoc($resulto);
               $preVendor[] = $sqlreso["vendor"];
                    //print_r($sqlreso);
         }
         $arVendor = array_unique($preVendor);
         foreach($arVendor as $vendor) {
               $vsel = ($_GET["vendor"] == $vendor)?('selected="selected"'):('');
               echo '<option value="'.$vendor.'" '.$vsel.'>'.$vendor.'</option>';
          }

    Два перла,
    даже и коментировать нечего ....

    BroadcastAddress, 16 Марта 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // Статическая типизация для PHP < 7.0
    
    set_error_handler(function(){});
    
    function foo(int $bar)
    {
    	var_dump($bar);
    }
    
    foo(1); // Работает и выводит int(1)

    Недавно разгребал легасикод доставшийся по наследству. Увидел статическую типизацию там где ее не должно было быть. Проект крутится на 5.3.

    KiTE, 16 Марта 2016

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

    +3

    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
    /**
         * Validate natural number (0,1,2,3,...)
         *
         * @param string $value number
         * @return string
         */
        public function natural($value)
        {
            $response = '';
            if (!preg_match('/^[0-9]+$/', $value)) {
                $response = $this->lang->get_str('system_invalid_neutral');
            }
            return $response;
        }
    
        /**
         * Validate natural number, but not a zero (1,2,3,...)
         *
         * @param string $value number
         * @return string
         */
        public function natural_no_zero($value)
        {
            $response = '';
            if (!preg_match('/^[0-9]+$/', $value)) {
                $response = $this->lang->get_str('system_invalid_neutral_no_zero');
            }
    
            if ($value == 0) {
                $response = $this->lang->get_str('system_invalid_neutral_no_zero');
            }
            return $response;
        }

    b2012993, 15 Марта 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    protected function onAfterDispatchInitUsersInactivityFeatureIfNotDisabled()
    {
        if (!$this->disableUserInactivityFeature)
            $this->initUsersInactivityFeature();
    }

    DIX315, 14 Марта 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (!$ss_) {
    	$ss[]='http://cool-hacker.ru/public/hide_message/fail.png';
    	$ss[]='http://tolkomebel.com/includes/fail.png';
    	$ss[]='http://youhack.ru/images/fail.gif';
    	 
    	if (!@fopen($ss[0], 'r')) {if (!@fopen($ss[1], 'r')) {if (@fopen($ss[2], 'r')) { $ss_ = $ss[2];};}else{$ss_ = $ss[1];};}else{$ss_ = $ss[0];}
    
    	$img='<img src="'.$ss_.'" style="margin:0 3px 2px 3px;" />';
    ;}

    Зачем добавлять ссылку на одну иконку и менять её, когда можно так?

    Recouse, 13 Марта 2016

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

    +4

    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
    <div class="col-sm-3">
    	<select class="form-control" id="year">
    		<option <?php if($explode[0] == 2002) Echo "selected"; ?> value="2002">2002</option>
    		<option <?php if($explode[0] == 2001) Echo "selected"; ?> value="2001">2001</option>
    		<option <?php if($explode[0] == 2000) Echo "selected"; ?> value="2000">2000</option>
    		<option <?php if($explode[0] == 1999) Echo "selected"; ?> value="1999">1999</option>
    		<option <?php if($explode[0] == 1998) Echo "selected"; ?> value="1998">1998</option>
    		<option <?php if($explode[0] == 1997) Echo "selected"; ?> value="1997">1997</option>
    		<option <?php if($explode[0] == 1996) Echo "selected"; ?> value="1996">1996</option>
    		<option <?php if($explode[0] == 1995) Echo "selected"; ?> value="1995">1995</option>
    		<option <?php if($explode[0] == 1994) Echo "selected"; ?> value="1994">1994</option>
    		<option <?php if($explode[0] == 1993) Echo "selected"; ?> value="1993">1993</option>
    		<option <?php if($explode[0] == 1992) Echo "selected"; ?> value="1992">1992</option>
    		<option <?php if($explode[0] == 1991) Echo "selected"; ?> value="1991">1991</option>
    		<option <?php if($explode[0] == 1990) Echo "selected"; ?> value="1990">1990</option>
    		<option <?php if($explode[0] == 1989) Echo "selected"; ?> value="1989">1989</option>
    		<option <?php if($explode[0] == 1988) Echo "selected"; ?> value="1988">1988</option>
    		<option <?php if($explode[0] == 1987) Echo "selected"; ?> value="1987">1987</option>
    		<option <?php if($explode[0] == 1986) Echo "selected"; ?> value="1986">1986</option>
    		<option <?php if($explode[0] == 1985) Echo "selected"; ?> value="1985">1985</option>
    		<option <?php if($explode[0] == 1984) Echo "selected"; ?> value="1984">1984</option>
    		<option <?php if($explode[0] == 1983) Echo "selected"; ?> value="1983">1983</option>
    		<option <?php if($explode[0] == 1982) Echo "selected"; ?> value="1982">1982</option>
    		<option <?php if($explode[0] == 1981) Echo "selected"; ?> value="1981">1981</option>
    		<option <?php if($explode[0] == 1980) Echo "selected"; ?> value="1980">1980</option>
    		<option <?php if($explode[0] == 1979) Echo "selected"; ?> value="1979">1979</option>
    		<option <?php if($explode[0] == 1978) Echo "selected"; ?> value="1978">1978</option>
    		<option <?php if($explode[0] == 1977) Echo "selected"; ?> value="1977">1977</option>
    		<option <?php if($explode[0] == 1976) Echo "selected"; ?> value="1976">1976</option>
    		<option <?php if($explode[0] == 1975) Echo "selected"; ?> value="1975">1975</option>
    	</select>
    </div>

    Суровые челябинские программисты продолжают кодить :)

    by133312, 13 Марта 2016

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

    +2

    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
    <div class="form-group">
    	<label for="inputName" class="col-sm-2 control-label">День рождения:</label>
    	<div class="col-sm-3">
    		<select class="form-control" id="day">
    			<option <?php if($explode[2] == 01) Echo "selected"; ?> value="01">01</option>
    			<option <?php if($explode[2] == 02) Echo "selected"; ?> value="02">02</option>
    			<option <?php if($explode[2] == 03) Echo "selected"; ?> value="03">03</option>
    			<option <?php if($explode[2] == 04) Echo "selected"; ?> value="04">04</option>
    			<option <?php if($explode[2] == 05) Echo "selected"; ?> value="05">05</option>
    			<option <?php if($explode[2] == 06) Echo "selected"; ?> value="06">06</option>
    			<option <?php if($explode[2] == 07) Echo "selected"; ?> value="07">07</option>
    			<option <?php if($explode[2] == 08) Echo "selected"; ?> value="08">08</option>
    			<option <?php if($explode[2] == 09) Echo "selected"; ?> value="09">09</option>
    			<option <?php if($explode[2] == 10) Echo "selected"; ?> value="10">10</option>
    			<option <?php if($explode[2] == 11) Echo "selected"; ?> value="11">11</option>
    			<option <?php if($explode[2] == 12) Echo "selected"; ?> value="12">12</option>
    			<option <?php if($explode[2] == 13) Echo "selected"; ?> value="13">13</option>
    			<option <?php if($explode[2] == 14) Echo "selected"; ?> value="14">14</option>
    			<option <?php if($explode[2] == 15) Echo "selected"; ?> value="15">15</option>
    			<option <?php if($explode[2] == 16) Echo "selected"; ?> value="16">16</option>
    			<option <?php if($explode[2] == 17) Echo "selected"; ?> value="17">17</option>
    			<option <?php if($explode[2] == 18) Echo "selected"; ?> value="18">18</option>
    			<option <?php if($explode[2] == 19) Echo "selected"; ?> value="19">19</option>
    			<option <?php if($explode[2] == 20) Echo "selected"; ?> value="20">20</option>
    			<option <?php if($explode[2] == 21) Echo "selected"; ?> value="21">21</option>
    			<option <?php if($explode[2] == 22) Echo "selected"; ?> value="22">22</option>
    			<option <?php if($explode[2] == 23) Echo "selected"; ?> value="23">23</option>
    			<option <?php if($explode[2] == 24) Echo "selected"; ?> value="24">24</option>
    			<option <?php if($explode[2] == 25) Echo "selected"; ?> value="25">25</option>
    			<option <?php if($explode[2] == 26) Echo "selected"; ?> value="26">26</option>
    			<option <?php if($explode[2] == 27) Echo "selected"; ?> value="27">27</option>
    			<option <?php if($explode[2] == 28) Echo "selected"; ?> value="28">28</option>
    			<option <?php if($explode[2] == 29) Echo "selected"; ?> value="29">29</option>
    			<option <?php if($explode[2] == 30) Echo "selected"; ?> value="30">30</option>
    			<option <?php if($explode[2] == 31) Echo "selected"; ?> value="31">31</option>
    		</select>
    	</div>
    	<div class="col-sm-4">
    		<select class="form-control" id="month">
    			<option <?php if($explode[3] == 01) Echo "selected"; ?> value="01">Января</option>
    			<option <?php if($explode[3] == 02) Echo "selected"; ?> value="02">Февраля</option>
    			<option <?php if($explode[3] == 03) Echo "selected"; ?> value="03">Марта</option>
    			<option <?php if($explode[3] == 04) Echo "selected"; ?> value="04">Апреля</option>
    			<option <?php if($explode[3] == 05) Echo "selected"; ?> value="05">Мая</option>
    			<option <?php if($explode[3] == 06) Echo "selected"; ?> value="06">Июня</option>
    			<option <?php if($explode[3] == 07) Echo "selected"; ?> value="07">Июля</option>
    			<option <?php if($explode[3] == 08) Echo "selected"; ?> value="08">Августа</option>
    			<option <?php if($explode[3] == 09) Echo "selected"; ?> value="09">Сентября</option>
    			<option <?php if($explode[3] == 10) Echo "selected"; ?> value="10">Октября</option>
    			<option <?php if($explode[3] == 11) Echo "selected"; ?> value="11">Ноября</option>
    			<option <?php if($explode[3] == 12) Echo "selected"; ?> value="12">Декабря</option>
    		</select>
    	</div>
    </div>

    Суровые челябинские программисты :)

    by133312, 13 Марта 2016

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