Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека самых бесполезных кусков кода, или как не стоит писать на РНР 
:(
    Опции темы
AztEK
Дата 24.1.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



[offtop]
А как логировать стек вызовов?
[/offtop]



--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
MuToGeN
Дата 25.1.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 2
Всего: 32



debug_backtrace()


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
IZ@TOP
Дата 2.2.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Уга-га. Купили один проект (фотогалерея), код с первого взгляда порадовал, но некоторые вещи особенно)

Код

          if(eregi("jpeg",$files[$i]['type']))$ext = '.jpg';
          if(eregi("jpg",$files[$i]['type'])) $ext = '.jpg';


Люблю сокращения, но все же)))

Код

return ($_SERVER['HTTP_HOST']!=FOTO_HOST?'http://'.HOST:'').$this->config['img_dir'].$p1.'/'.$p2.'/'.$userid.'/'.$albid.($pass?'pass':'').'/'.$file;



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
smartov
Дата 2.2.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(IZ@TOP @  2.2.2007,  15:26 Найти цитируемый пост)
некоторые вещи особенно

Как обычно smile Strict Indian Style smile
PM MAIL   Вверх
WolfON
Дата 21.4.2007, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



Есть код типа:
Код

    public function getDayCounts() {
        $raw = $this->http->Post("www.livejournal.com/interface/flat", "mode=getdaycounts&user=".$this->username."&auth_method=cookie", array("X-LJ-Auth: cookie"));
        return $this->explodeFlat($raw);            
    }
    
    public function getFriendOf() {
        $raw = $this->http->Post("www.livejournal.com/interface/flat", "mode=friendof&user=".$this->username."&auth_method=cookie", array("X-LJ-Auth: cookie"));
        return $this->explodeFlat($raw);            
    }


И судя по всему, прийдется дописать таких функций еще пять
Каким образом вы-бы упростили код, не лишая его читабельности, пока ничего, кроме как вынести его в отдельную функцию в голову не приходит =/
PM MAIL ICQ   Вверх
smartov
Дата 21.4.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



WolfON
как вариант, например
Код

public function getValueOfMode($mode) {
        $raw = $this->http->Post("www.livejournal.com/interface/flat", "mode=".$mode."&user=".$this->username."&auth_method=cookie", array("X-LJ-Auth: cookie"));
        return $this->explodeFlat($raw);
}


...
//вызов

$dayscount = $className->getValueOfMode('getdayscount');

$friendOf = $className->getValueOfMode('friendof');

PM MAIL   Вверх
d4rkr00t
Дата 10.11.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 26.3.2006

Репутация: нет
Всего: нет



во что встретил в одном проекте

Код

<?
$ip = getenv("REMOTE_ADDR");

If ($ip == "63.76.234.54" or $ip == "194.158.208.151" or $ip == "212.5.100.140" or $ip == "194.67.159.230") {
echo "<p><b>Форум временно закрыт</b></p>";
exit;
}
?>



Это что система банна??)))
 



Это сообщение отредактировал(а) d4rkr00t - 10.11.2008, 19:57
PM MAIL   Вверх
smartov
Дата 10.11.2008, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(d4rkr00t @  10.11.2008,  19:56 Найти цитируемый пост)
во что встретил в одном проекте

Клааас smile  smile 
PM MAIL   Вверх
jnb
Дата 13.11.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 4.10.2006

Репутация: нет
Всего: 1



Вижу ветка еще жива.
Прочитать смог только первую страницу.
Идея ТС-а конечно интересная, но что-то пошло вразнос: гуру выкладывают код, потом дружно ржут над ним без комментариев, засирают авторов кода и ВСЕ!
Это очень полезно для новичков. Новичок только может сделать вывод: что бы он не написал - его залажают.


PM MAIL   Вверх
bars80080
Дата 13.11.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



jnb, согласен, тема не флеймовая.
однако на первой странице всего три куска. первые два от IZ@TOP и smartov объяснены достаточно
Vaulter, правда, изначально ничего не говорит, но дальше из контекста ясно, что убивает в этом коде. и не нужно быть семи пядей во лбу, чтобы понять что в первом примере из-за ($a, $b, $c, $d) просто фиг разберёшься в функции. почему было не назвать переменные понятно - неизвестно
а во втором примере человек явно страдает. очень сильно. циклы для того и придуманы, чтобы не было подобных упражнений для пальцев
PM MAIL WWW   Вверх
Majesty
Дата 28.11.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.3.2005
Где: Almaty, Kazakhsta n

Репутация: нет
Всего: нет



Платный движок для создания "социальных сетей" SocialEngine. Класс se_user (/include/class_user.php). Метод user_fields.
Код
...
      // SET PROFILE TAB VARIABLES
      $tab_query = "SELECT * FROM se_tabs"; if($tab_id != 0) { $tab_query .= " WHERE tab_id='$tab_id'"; } $tab_query .= " ORDER BY tab_order";
      $tabs = $database->database_query($tab_query);

      // LOOP THROUGH TABS
      while($tab_info = $database->database_fetch_assoc($tabs)) {

        // GET NON DEPENDENT FIELDS IN TAB IF NECESSARY
        if($tabs_only == 0) {
          $field_count = 0;
          $this->profile_fields = "";
          $field_query = "SELECT * FROM se_fields WHERE field_tab_id='$tab_info[tab_id]' AND field_dependency='0'"; if($signup != 0) { $field_query .= " AND field_signup<>'0'"; } if($profile != 0) { $field_query .= " AND field_browsable<>'-1'"; } if($search != 0) { $field_query .= " AND (field_browsable='1' OR field_browsable='2')"; } $field_query .= " ORDER BY field_order";
          $fields = $database->database_query($field_query);
          while($field_info = $database->database_fetch_assoc($fields)) {
...
Мало того, что отсутствие оформления делает абсолютно не читабельным, мало того, что вложенность операторов выше всякой меры... Убивает вложенность циклов с запросами. Какую нагрузку, интересно, выдержит такая "соц. сеть"?
PM MAIL WWW   Вверх
NLspieler
Дата 5.12.2008, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: нет
Всего: 19



Функция помогающая составлять mathml формулы. 
Сильно же по-уродски выглядит? 

Код

<?php

function mathml ($text)
{
    $array = explode (' ' , $text) ;
    $Anzhal = count ($array) ;
    $key = 0 ;
  
    echo   '<math xmlns="http://www.w3.org/1998/Math/MathML">' , "\n"  ;
  
    while ($key < $Anzhal)
    {
        $symbol = $array[$key] ;
    
        if ( $symbol == '+' or $symbol == '-' or $symbol == '*' or $symbol == '=' or $symbol == ',' 
                            or $symbol == '<' or $symbol == '>' or $symbol == '(' or $symbol == ')' )
        {
            echo '<mo>',"$symbol",'</mo>' , "\n"  ;
        }
        elseif (is_numeric($symbol))
        {                                                                                 
            echo '<mi>' , "$symbol" , '</mi>' , "\n"  ;
        }
        elseif ($symbol == '[')
        {
            echo       '<mrow>'   , "\n"  ;
        }    
        elseif ($symbol == ']')
        {
            echo       '</mrow>'   , "\n"  ;
        }    
        elseif ($symbol == '_s')
        {
            echo       '<msqrt>'   , "\n"  ;
        }
        elseif ($symbol == 's_')
        {
            echo      '</msqrt>'   , "\n"  ;
        }
        elseif ($symbol == '{')
        {
            echo       '<mfrac>'   , "\n"  ;
        }
        elseif ($symbol == '}')
        {
            echo      '</mfrac>'   , "\n"  ;
        }
        elseif ($symbol == '_n')
        {
            echo       '<msub>'   , "\n"  ;
        }
        elseif ($symbol == 'n_')
        {
            echo      '</msub>'   , "\n"  ;
        }
        elseif ($symbol == '_w')
        {
            echo       '<msup>'   , "\n"  ;
        }
        elseif ($symbol == 'w_')
        {
            echo      '</msup>'   , "\n"  ;
        }
        elseif ($symbol == '+-')
        {
            echo   '<mfrac linethickness="0">'       , "\n"  ;
            echo       '<mo>+</mo>'                  , "\n"  ;
            echo       '<mo>-</mo>'                  , "\n"  ;
            echo    '</mfrac>'                       , "\n"  ;
        }
        else 
        {
            echo '<mi>' , "$symbol" , '</mi>' , "\n"  ;
        }
        
        $key++ ;
    }

    echo    '</math>'                                          , "\n"  ;
    echo       '<br/> <br/>'                                   , "\n"  ; 

}


?>

PM MAIL   Вверх
smartov
Дата 5.12.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



NLspieler, да, все это можно было сделать проще, забив сначала массив соответсвий замен.
PM MAIL   Вверх
NLspieler
Дата 6.12.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: нет
Всего: 19



Цитата(smartov @ 5.12.2008,  13:40)
NLspieler, да, все это можно было сделать проще, забив сначала массив соответсвий замен.

Что значит массив соответствий замен? 
PM MAIL   Вверх
NLspieler
Дата 6.12.2008, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: нет
Всего: 19



А вот это одна из функций, которая использует предыдущую функцию 

Код

<?php

/* Отображение квадратного уравнения */

function urawnenie ($A, $B, $C)            
{
    /* ax2 + bx + c = 0 */

    $absA = abs ($A) ;  #Модули входящих переменных
    $absB = abs ($B) ;
    $absC = abs ($C) ;

    $mathml = ($A < 0)                    ? '-'                        .' '   : ''          ;
    $mathml = ($A <> 0 and $absA <> 1)    ? "$mathml"."$absA"          .' '   : "$mathml"   ;
    $mathml = ($A <> 0)                   ? "$mathml".'_w x 2 w_'      .' '   : "$mathml"   ;
  
    $mathml = ($B < 0)                    ? "$mathml".'-'              .' '   : "$mathml"   ;
    $mathml = ($B > 0)                    ? "$mathml".'+'              .' '   : "$mathml"   ;  
    $mathml = ($B <> 0 and $absB <> 1)    ? "$mathml"."$absB"          .' '   : "$mathml"   ;
    $mathml = ($B <> 0)                   ? "$mathml".'x'              .' '   : "$mathml"   ;
  
    $mathml = ($C < 0)                    ? "$mathml".'-'              .' '   : "$mathml"   ;
    $mathml = ($C > 0)                    ? "$mathml".'+'              .' '   : "$mathml"   ;  
    $mathml = ($C <> 0)                   ? "$mathml"."$absC"          .' '   : "$mathml"   ;
  
    $mathml = "$mathml".'= 0'  ; 
  
    mathml ($mathml)           ;
}


?>

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.