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

    +154

    1. 1
    $_params[] = sTools::convert2cp1251(preg_replace('|\s+|', ' ', str_replace('"', '""', htmlspecialchars_decode($_param['title'])))) . ':' . sTools::convert2cp1251(preg_replace('|\s+|', ' ', str_replace('"', '""', htmlspecialchars_decode($_param['unit'])))) . '|' . implode(',', $_param['value']);

    sautchenkov, 16 Сентября 2014

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

    +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
    if($numr>1){
        $i=0;
        while($row=mysql_fetch_object($q)){++$i;
    
            if($num==$i){
                return $row->id;
                break;
            }
        }
    }elseif($numr==1){
        $row=mysql_fetch_object($q);
        return $row->id;
    }else{
        return 0;
    }

    А на случай, если return() не сработает, у нас есть break

    Khvorostin, 16 Сентября 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $c=count($arr1);
    for($i=0;$i<$c;$i++){
    	$key=key($arr1);
    	ksort($arr1[$key]);
    	next($arr1);
    }

    foreach() чем-то не угодил

    Khvorostin, 16 Сентября 2014

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php
    
    $data = file_get_contents("/path/to/photo.jpg"); // Read the file's contents
    $name = 'myphoto.jpg';
    
    force_download($name, $data);

    Я знаю конечно что это не говнокод, но последствия будут ужасными если не передать сразу же в функцию данные (т.к. PHP будет копировать содержимое дважды), представьте себе файл в 2МБ и много запросов, сервер капут в два раза быстрее.
    - https://ellislab.com/codeigniter/user-guide/helpers/download_helper.html

    volter9, 15 Сентября 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $data = $DB->...
    reset($data);
    while (list(, $row) = each($data)) {
        // do somethig with $row
    }

    Я не понимаю, почему просто не использовать foreach?!

    matasar, 13 Сентября 2014

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

    +166

    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
    <?php
    
    if($ssh->login($user_p,$pass_p,$ip_p,$port_p) ){
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(1);
            $ssh->exec_cmd('php /var/www/reinfo.php;');
            $ssh->disconnect();
     
    }

    Это файл /var/www/reinfo.php.
    Задача в кроне на выполнение этого файла:
    0,2,4,6,8,10,13,15,17,19,21,23,25,27,29, 31,33,35-36,38,40,42,44,46,48,50,52,54,56,58 * * * * php /var/www/reinfo.php

    Onotole, 11 Сентября 2014

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

    +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
    public function getByAllParameters()
        {
            $fields = array_keys($this->getFields());
            unset($fields[0]);
            sort($fields);
            if($this->getByConditions(array('id_user', 'status', 'card_bin', 'card_suffix', 'id_card_type', 'card_token'))){
                $processing = new Processing();
                $processing->id = $this->id_processing;
                return $processing->getByPrimary() && $processing->enabled == 1;
            }
            return false;
        }

    dimkich, 11 Сентября 2014

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

    +157

    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
    public function toArray()
            {
                    $that = $this;
                    $profile = $this->getProfile();
                    return [
                            'sex' => $profile->getSex(),
                            'distance' => (int) $profile->get($profile::FIELD_DISTANCE),
                            'balance' => new Object_Response_Model_User_Balance($profile->get($profile::FIELD_BALANCE)),
     
                            'payments' => call_user_func(function() use ($that) {
                                    $return = [];
                                    $checkoutTypes = $that->getRelationCheckoutTypes()->find_all()->as_array();
                                    foreach($checkoutTypes as $checkoutType) {
                                            if (json_decode($checkoutType->data)[0]->value) {
                                                    $return[] = $checkoutType;
                                            }
                                    }
                                    return $return;
                            }),
                            'vk' => $this->getRelationSocial()->getProfileUrl(),
                            'validate' => $this->getValidate()
                    ];
            };

    Автор: просто php нам дало анонимные функции, почему бы ими не пользоваться?

    limitium, 09 Сентября 2014

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

    +151

    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
    public function toArray()
            {
                    $that = $this;
                    $profile = $this->getProfile();
                    return [
                            'sex' => $profile->getSex(),
                            'distance' => (int) $profile->get($profile::FIELD_DISTANCE),
                            'balance' => new Object_Response_Model_User_Balance($profile->get($profile::FIELD_BALANCE)),
     
                            'payments' => call_user_func(function() use ($that) {
                                    $return = [];
                                    $checkoutTypes = $that->getRelationCheckoutTypes()->find_all()->as_array();
                                    foreach($checkoutTypes as $checkoutType) {
                                            if (json_decode($checkoutType->data)[0]->value) {
                                                    $return[] = $checkoutType;
                                            }
                                    }
                                    return $return;
                            }),
                            'vk' => $this->getRelationSocial()->getProfileUrl(),
                            'validate' => $this->getValidate()
                    ];
            };

    limitium, 09 Сентября 2014

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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    $a = null;
    var_dump($a, $a[0], $a); // NULL, NULL, NULL // what the fuck?
    $a[0] = null;
    var_dump($a); // array(0 => NULL)

    "PHP и type juggling", том третий. При этом на первый вызов $a[0] не ругается, будто при приведении NULL к пустому массиву в нем появляется нулевой элемент.

    Fike, 09 Сентября 2014

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