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

    +121

    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
    This awesome yet simple and pragmatic PHP library performs an addition of two numbers.
    
    In early stages of Internet, developers were forced to work with poor, dry, functional, horrific languages. Everything had to be done through austere functions and operators. There was no objects. No interfaces. No dependency injection.
    
    For example, to make something as simple as an addition, our dads had to write: 1+1. Yeah, really.
    
    Hopefuly now, we have PHP 5.3 and its solid OOP implementation. SimplePHPEasyPlus lets you make this addition in a more fashionable way, using real OOP. It is fast, simple, flexible and tested. To add 1 to 1, all you have to do is:
    
    use SimplePHPEasyPlus\Number\NumberCollection;
    use SimplePHPEasyPlus\Number\SimpleNumber;
    use SimplePHPEasyPlus\Number\CollectionItemNumberProxy;
    use SimplePHPEasyPlus\Parser\SimpleNumberStringParser;
    use SimplePHPEasyPlus\Iterator\CallbackIterator;
    use SimplePHPEasyPlus\Operator\AdditionOperator;
    use SimplePHPEasyPlus\Operation\ArithmeticOperation;
    use SimplePHPEasyPlus\Operation\OperationStream;
    use SimplePHPEasyPlus\Engine;
    use SimplePHPEasyPlus\Calcul\Calcul;
    use SimplePHPEasyPlus\Calcul\CalculRunner;
    
    
    $numberCollection = new NumberCollection();
    
    $numberParser = new SimpleNumberStringParser();
    
    $firstParsedNumber = $numberParser->parse('1');
    $firstNumber = new SimpleNumber($firstParsedNumber);
    $firstNumberProxy = new CollectionItemNumberProxy($firstNumber);
    
    $numberCollection->add($firstNumberProxy);
    
    $secondParsedNumber = $numberParser->parse('1');
    $secondNumber = new SimpleNumber($secondParsedNumber);
    $secondNumberProxy = new CollectionItemNumberProxy($secondNumber);
    
    $numberCollection->add($secondNumberProxy);
    
    $addition = new AdditionOperator('SimplePHPEasyPlus\Number\SimpleNumber');
    
    $operation = new ArithmeticOperation($addition);
    
    $engine = new Engine($operation);
    
    $calcul = new Calcul($engine, $numberCollection);
    
    $runner = new CalculRunner();
    
    $runner->run($calcul);
    
    $result = $calcul->getResult();
    $numericResult = $result->getValue(); // 2
    This library is now available for production purposes. Enjoy!

    [КО]Складывает 2 числа[/КО]

    Vasiliy, 01 Декабря 2012

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

    +51

    1. 1
    2. 2
    #101 Check PHP configuration in console
    $ php -r "phpinfo\(\);"

    Вот такой скрипт нашёл в дебрях локального битрикса под NDA.

    serpinski, 01 Декабря 2012

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

    +50

    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
    public function getFilename($filename) {
            $string = ereg_replace("ж", "zh", $filename);
            $string = ereg_replace("ё","yo",$string);
            $string = ereg_replace("и", "i",$string);
            ......
    
            $string = ereg_replace("Т","T",$string);
            $string = ereg_replace("Б","B",$string);
            
            $string = ereg_replace(" ","_",$string);
            $filename = preg_replace("/[^\w\.\-_]/","",$string);
            
            return strtolower($filename);
        }

    UnnamedUser, 01 Декабря 2012

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

    +54

    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
    if($i!='0')
                {
                        $query="SELECT DATE_ADD(CURDATE(), INTERVAL ".$i." MONTH)";
                        $temp_date_array=mysql_fetch_row(mysql_query($query));
                        $temp_date_newmonth=$temp_date_array[0];
                       
                        $query="SELECT DAYOFMONTH('".$temp_date_newmonth."');";
                        $day=mysql_fetch_row(mysql_query($query));
                       
                        $query="SELECT DATE_ADD('".$temp_date_newmonth."', INTERVAL -".($day[0]-1)." DAY)";
                        $temp_date_array=mysql_fetch_row(mysql_query($query));
                        $temp_date=$temp_date_array[0];
                       
                        $query="SELECT DATE_ADD('".$temp_date."', INTERVAL 1 MONTH);";
                        $temp_date_array=mysql_fetch_row(mysql_query($query));
                        $temp_date_end=$temp_date_array[0];
                }
                else
                {
                        $query="SELECT CURDATE();";    
                        $temp_date_array=mysql_fetch_row(mysql_query($query));
                        $temp_date=$temp_date_array[0];
                       
                        $query="SELECT DAYOFMONTH('".$temp_date."');";
                        $day=mysql_fetch_row(mysql_query($query));
                       
                        $query="SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH)";
                        $temp_date_array=mysql_fetch_row(mysql_query($query));
                        $temp_date_end_newmonth=$temp_date_array[0];
                       
                        $query="SELECT DATE_ADD('".$temp_date_end_newmonth."', INTERVAL -".($day[0]-1)." DAY)";
                        $temp_date_array=mysql_fetch_row(mysql_query($query));
                        $temp_date_end=$temp_date_array[0];
                }
                $query="SELECT MONTH('".$temp_date."');";

    http://forum.php.su/topic.php?forum=69&topic=50&v=#135410099 3

    sKaa, 28 Ноября 2012

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

    +51

    1. 1
    2. 2
    3. 3
    4. 4
    $needMoreDataWM = ($exchange->getSumTo()->getCurrency()->getSystem()->getModule() == 'WebMoney' || $exchange->getSumFrom()->getCurrency()->getSystem()->getModule() == 'WebMoney') || $this->getRequest()->request->get('user_wmid');
    $needMoreDataWM = $needMoreDataWM && !$user->getWmid();
    $needMoreDataBank = ($exchange->getSumTo()->getCurrency()->getSystem()->getClass() == 'bank') && !$user->getVat() || $this->getRequest()->request->get('user_vat');
    $needMoreData = $needMoreDataBank || $needMoreDataWM || !($user->getFullname() && $user->getPassport()) || $this->getRequest()->request->get('user_fullname') || $this->getRequest()->request->get('user_passport');

    А что поделаешь, Doctrine принуждает

    nick4fake, 28 Ноября 2012

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

    +46

    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
    ...
    
    //----------------------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    	    //обработка картинки для анонса 
    	    $model->preview_picture = CUploadedFile::getInstance($model, 'preview_picture');
    
    	    //убедимся что каталоги созданы
    	    if (@mkdir($curr_month_folder, 0777))
    		chmod($curr_month_folder, 0777);
    	    if (@mkdir($img_dir, 0777))
    		chmod($img_dir, 0777);
    	    if (@mkdir($img_dir_thumbs, 0777))
    		chmod($img_dir_thumbs, 0777);
    	    if (@mkdir($temp_img_dir_base, 0777))
    		chmod($temp_img_dir_base, 0777);
    	    if (@mkdir($temp_img_dir, 0777))
    		chmod($temp_img_dir, 0777);
    	    if (@mkdir($temp_img_dir_snap, 0777))
    		chmod($temp_img_dir_snap, 0777);
    
    	    //если  картинка для анонса не передана
    	    if (!$model->preview_picture) {
    		//проверяем не была ли она загружена ранее во временую папку
    		if ($form->model->image) {
    		    $model->preview_picture = $form->model->image;
    		}
    		//а нет так нет
    	    } else
    
    ...

    форматирование сохранено.

    Вообще весь кусок около 500 строк, а и эти 500 откопипизжены еще
    в 7 методов этого класса.
    ...за что мне все это

    Razban_Guestov, 26 Ноября 2012

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

    +50

    1. 1
    2. 2
    $result = ( !empty($this->skins[$skin]['gplum']) ) ? TRUE : FALSE;
    return $result;

    Наверное, это уже баян.

    nbspjr, 21 Ноября 2012

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

    +42

    1. 1
    2. 2
    if( !empty($data['date']) )
          $data['date'] = preg_replace("/(\d+)\.(\d+)\.(\d+)/", "$3.$2.$1", $data['date']);

    nicksevenfold, 21 Ноября 2012

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

    +37

    1. 1
    2. 2
    if (isset($_GET['oneway']))
                $_SESSION['oneway'] = intval($_GET['oneway']) == 1 ? 1 : 0;

    Уточню : надо именно int, а не bool для API сервиса.
    На ум приходят 2 других более красивых способа нормализации. Может и ещё что-то есть.

    kryoz, 21 Ноября 2012

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

    +46

    1. 1
    for($i=0;$i<=100;$i++)echo(!$i?$i:($i%3==0&&$i%5==0?'FizzBuzz':($i%3==0?'Fizz':($i%5==0?'Buzz':$i)))).'<br>';

    FizzBuzz - мое решение.

    pkot, 20 Ноября 2012

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