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

    +156

    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
    <!-- saved from url=(0014)about:internet -->
    <?php
    define('WEATHER_FILE_3_DAYS', '/meteoparse/weather.xml');
    define('WEATHER_URL_3_DAYS', 'http://pogoda.by/xml2/xml-kstati.by.php');
    define('BASE_PATH', $_SERVER['DOCUMENT_ROOT']);
    define('DAYS_COUNT', 3);
     
    require_once('include/weather_tools.php');
     
    if (date('d.m.Y.h', filectime(BASE_PATH . WEATHER_FILE_3_DAYS)) != date('d.m.Y.h')) {
            copy(WEATHER_URL_3_DAYS, BASE_PATH . WEATHER_FILE_3_DAYS);      
    }
            $file = file_get_contents ('weather.xml');
            $xmlWeather = simplexml_load_string($file);
            $aXmlForecasts = $xmlWeather->xpath('/pogoda/CITY/FORECAST');
            
    $aWeather = array();
    $curDay = 0;
     
    foreach($aXmlForecasts as $xmlForecast) {
            $attrs = $xmlForecast->attributes();
            $date = $attrs->day . '-' .
                    $attrs->month . '-' .
                    $attrs->year;
            $hour = strval($attrs->hour);
            if (!array_key_exists($date, $aWeather)) {
                    $curDay++;
                    if ($curDay > DAYS_COUNT) break;
                    $aWeather[$date] = array();
            }
            if (!array_key_exists($hour, $aWeather[$date])) {
                    $aWeather[$date][$hour] = array();
            }
            foreach($xmlForecast as $property => $values) {
                    $aWeather[$date][$hour][$property] = '';
                    $valuesAttr = $values->attributes();
                    foreach($valuesAttr as $value) {
                            $aWeather[$date][$hour][$property] .= strval($value);
                    }                               
            }
            
    }
    foreach($aWeather as $dateKey => $date) {
            foreach ($date as $hourKey => $hour) {
                    $aWeather[$dateKey][$hourKey]['DAYTIME'] = getDayTime($hourKey);
                    $aWeather[$dateKey][$hourKey]['PHENOMENA'] = getPhenomeaUrl($hour['PHENOMENA']);
                    $aWeather[$dateKey][$hourKey]['WIND'] = getWind($hour['WIND']);
            }
    }
    ?>
                    <td colspan="<?php echo count($aWeather); ?>">
                            <?php foreach ($aWeather as $date => $hours) : ?>                       
                            <table id="<?php echo 'table' . $date; ?>" class="hide">
                                    <tr class="attrs">
                                            <th></th>
                                            <th></th>
                                            <th>Давление</th>
                                            <th>t, °С</th>
                                            <th>Ветер</th>
                                    </tr>
                                    <?php foreach($hours as $hour => $properties) : ?>
                                    <tr>
                                            <td><?php echo $properties['DAYTIME']; ?></td>
                                            <td><img src="<?php echo $properties['PHENOMENA']; ?>" /></td>
                                            <td class="param"><?php echo $properties['PRESSURE']; ?> гПа </td>
                                            <td class="param1"><?php echo $properties['TEMPERATURE']; ?> °C</td>
                                            <td class="param"><?php echo $properties['WIND']; ?> &nbsp(м/с)</td>
                                    </tr>
                                    <?php endforeach; ?>
                            </table>
                            <?php endforeach; ?>
                    </td>
            </tr>
            </table>
            </div>
            <script type="text/javascript">
                    var weatherBox = document.getElementById('weatherBox');
                    weatherBox.getElementsByTagName('table')[0].getElementsByTagName('table')[0].className = "show";
            </script>

    #4837 Продолжение.

    qbasic, 07 Декабря 2010

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

    +159

    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 
    session_start();
    define('_JEXEC', 1);
    $host = $_SERVER['DOCUMENT_ROOT'];
    include $host.'/admin/function.php';
    include $host.'/data/conf.php';
    include $host.'/data/settings.php';
    
    $templates = $system['templates'];
    
    $content = file_get_contents($host.'/design/'.$templates.'/index.tpl');
    
    $result = mysql_query(" SELECT * FROM news WHERE section='index' ");
    $myrow = mysql_fetch_array($result);
    
    $result2 = mysql_query(" SELECT * FROM slogan ");
    $myrow2 = mysql_fetch_array($result2);
    
    $index_news = $myrow['news'];
    $title = $myrow['title'];
    $description = $myrow['description'];
    $keywords = $myrow['keywords'];
    
    $menu=''; 
    function callback($s) {$GLOBALS['menu'].=$s; }
    ob_start('callback');
    include $host.'/data/site_content/menu.php'; 
    ob_end_flush();   
    $menu="$menu";
    
    $content=str_replace('{templates}', $templates, $content);
    $content=str_replace('{menu}', $menu, $content);
    $content=str_replace('{content}', $index_news, $content);
    
    $content=str_replace('{slogan_name}', $myrow2['slogan_name'], $content);
    $content=str_replace('{slogan}',$myrow2['slogan'], $content);
    
    $content=str_replace('{title}', $title, $content);
    $content=str_replace('{description}', $description, $content);
    $content=str_replace('{keywords}', $keywords, $content);
    
    echo $content;
    
    ?>

    qbasic, 07 Декабря 2010

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

    +161

    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
    $sec_in_year = 31536000;
    $sec_in_lyear = 31622400;
    $sec_in_28 = 2419200;
    $sec_in_29 = 2505600;
    $sec_in_30 = 2592000;
    $sec_in_31 = 2678400;
    $sec_in_day = 86400;
    $sec_in_hour = 3600;
    $sec_in_min = 60;
    $year_count = 1970;
    $month_count = 0;
    $day_count = 1;
    $hour_count = 0;
    $min_count = 0;
    $lyear_count = 2;                                                // Make an array of seconds per month for ease of use.
    $months = array(2678400, 2419200, 2678400, 2592000, 2678400, 2592000, 2678400, 2678400, 2592000, 2678400, 2592000, 2678400);
    $lmonths = array(2678400, 2505600, 2678400, 2592000, 2678400, 2592000, 2678400, 2678400, 2592000, 2678400, 2592000, 2678400);
    $month_list = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
    
    while($utime >= $sec_in_year) {                        // Count the year since 1970.
            if($lyear_count % 4 == 0) {
              $utime -= $sec_in_lyear;                // Compensate for leap years.
            }
            else {
              $utime -= $sec_in_year;
            }
            $year_count++;
            $lyear_count++;
    }
    while($utime >= $months[$month_count]) {        // Count the months since Jan.
            if($lyear_count % 4 == 0) {
                    $utime -= $lmonths[$month_count];        // Compensate for leap year Feb.
            }
            else {
                    $utime -= $months[$month_count];
            }
            $month_count++;
    }

    И еще куча строк кода.
    Конвертим никсовый временной штамп, в читаемый для человека формат... aka date()

    fork, 07 Декабря 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <ZORG2> Как грамотно хранить PHP код в базе????
    <neko> как строку
    <ZORG2> я имею в виду фильтровать его как то?? возможность добавления PHP кода в базу будет только у админа сайта.
    <neko> скастуй в строку!
    <ZORG2> и этот код будет подключаться в некоторые страницы сайта для выполнения

    привет от #php на irc.by

    robot, 07 Декабря 2010

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

    +158

    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
    protected function composeResolvers()
        {
            require_once systemConfig::$pathToSystem . '/resolver/init.php';
            require_once systemConfig::$pathToSystem . '/resolver/templateMediaResolver.php';
            require_once systemConfig::$pathToSystem . '/resolver/moduleMediaResolver.php';
            require_once systemConfig::$pathToSystem . '/resolver/extensionBasedModuleMediaResolver.php';
            require_once systemConfig::$pathToSystem . '/core/fileLoader.php';
    
            $baseresolver = new compositeResolver();
            $baseresolver->addResolver(new fileResolver(systemConfig::$pathToApplication . '/*'));
            $baseresolver->addResolver(new fileResolver(systemConfig::$pathToWebRoot . '/*'));
            $baseresolver->addResolver(new fileResolver(systemConfig::$pathToSystem . '/*'));
    
            $resolver = new compositeResolver();
            $resolver->addResolver(new templateMediaResolver($baseresolver));
            $resolver->addResolver(new moduleMediaResolver($baseresolver));
            $resolver->addResolver(new extensionBasedModuleMediaResolver($baseresolver));
            $resolver->addResolver(new classFileResolver($baseresolver));
    
            if (function_exists('external_callback')) {
                external_callback($resolver, $baseresolver);
            }
    
            return new cachingResolver($resolver, 'resolver_media_cache');
        }

    Прямиком с http://govnokod.googlecode.com/svn/trunk/govnoquoter/www/bundle.php
    Там ещё много всего интересного!

    Govnocoder#0xFF, 07 Декабря 2010

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

    +172

    1. 1
    2. 2
    3. 3
    4. 4
    for($i;$i<strlen($param);$i++)
            {
                if(strpos($extra,$param[$i]) === FALSE && eregi('[^a-zA-Z]', $param[$i] )) return false;
            }

    Проверка, что строка состоит только из букАвок. com_rsform для Joomla. Там весь validation.php таким измазан.

    young, 06 Декабря 2010

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

    +20

    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( 
        ('node' == arg(0) ) && 
        is_numeric(arg(1) ) && 
        ($node = node_load(array('nid' => arg(1), 'status' => 1 ) ) ) &&
        ( 
            ('chapter' == $node->type) || 
            ('article' == $node->type) ||
            ('gall' == $node->type)
        ) && 
        isset($node->field_parentchapter) && 
        is_array($node->field_parentchapter) && 
        count($node->field_parentchapter) 
    ){
    /// blah blah
    }

    матан, или как сделать из кучи одинаковых if() один

    brainstorm, 06 Декабря 2010

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

    +162

    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
    function getDayHight($hour) {
        return ($hour >= 6 && $hour < 18) ? 'day' : 'hight';
    }
     
    function getPhenomenaName($phenomena) {
        static $NAMES = array(
            'SKC' => 0,
            'FEW' => 0,
            'BKN' => 0,
            'SCT' => 0,
            'SKCBR' => 0,
            'SKCFG' => 0,
            'SKCRA' => 0,
            'SKCSNRA' => 0,
            'SKCSN' => 0,
            'SKCBl' => 0,
            'SKCTS' => 0,
            'SKCTSRA' => 0,
            'FEWBR' => 1,
            'FEWFG' => 1,
            'FEWRA' => 4,
            'FEWSNRA' => 2,
            'FEWSN' => 7,
            'FEWBl' => 7,
            'FEWTS' => 8,
            'FEWTSRA' => 8,
            'BKNBR' => 1,
            'BKNFG' => 1,
            'BKNRA' => 4,
            'BKNSNRA' => 2,
            'BKNSN' => 7,
            'BKNBl' => 7,
            'BKNTS' => 8,
            'BKNTSRA' => 8,
            'SCTBR' => 1,
            'SCTFG' => 1,
            'SCTRA' => 4,
            'SCTSNRA' => 2,
            'SCTSN' => 7,
            'SCTBl' => 7,
            'SCTTS' => 8,
            'SCTTSRA' => 8,
            'OVCBR' => 3,
            'OVCFG' => 3,
            'OVCRA' => 5,
            'OVCSNRA' => 6,
            'OVCSN' => 7,
            'OVCBl' => 7,
            'OVCTS' => 8,
            'OVCTSRA' => 8,
        );
        $phenomena = preg_replace('/\\d/', '', $phenomena);
        return isset($NAMES[$phenomena]) ? $NAMES[$phenomena] . '.png' : '-1';
    }
     
    $url = '/img/' . getDayHight($hour) . '/' . getPhenomenaName($phenomena);

    #4836 после рефакторинга

    qbasic, 06 Декабря 2010

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

    +168

    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
    <?php
    function getDayTime($hour) {
            switch ($hour) {
                    case '0': return 'Утро';
                    case '6': return 'День';
                    case '12': return 'Вечер';
                    case '18': return 'Ночь';
            }
    }
     
     
    function getPhenomeaUrl($phenomena) {
            $baseUrl = 'img/day/';
            $baseUrl1 = 'img/night/';
            $phenomena = preg_replace('/\d/', '', $phenomena);
                    switch ($phenomena) {
                    case 'SKC': return $baseUrl . '0.png';
                    case 'FEW': return $baseUrl . '0.png';
                    case 'BKN': return $baseUrl . '0.png';  
                    case 'SCT': return $baseUrl . '0.png';
                case 'SKCBR': return $baseUrl . '0.png';
                    case 'SKCFG': return $baseUrl . '0.png';
                    case 'SKCRA': return $baseUrl . '0.png';
                    case 'SKCSNRA': return $baseUrl . '0.png';
                    case 'SKCSN': return $baseUrl . '0.png';
                    case 'SKCBl': return $baseUrl . '0.png';
                    case 'SKCTS': return $baseUrl . '0.png';
                    case 'SKCTSRA': return $baseUrl . '0.png';
                    case 'FEWBR': return $baseUrl . '1.png';
                    case 'FEWFG': return $baseUrl . '1.png';
                    case 'FEWRA': return $baseUrl . '4.png';
                    case 'FEWSNRA': return $baseUrl . '2.png';
                    case 'FEWSN': return $baseUrl . '7.png';
                    case 'FEWBl': return $baseUrl . '7.png';
                    case 'FEWTS': return $baseUrl . '8.png';
                    case 'FEWTSRA': return $baseUrl . '8.png';
                    case 'BKNBR': return $baseUrl . '1.png';
                    case 'BKNFG': return $baseUrl . '1.png';
                    case 'BKNRA': return $baseUrl . '4.png';
                    case 'BKNSNRA': return $baseUrl . '2.png';
                    case 'BKNSN': return $baseUrl . '7.png';
                    case 'BKNBl': return $baseUrl . '7.png';
                    case 'BKNTS': return $baseUrl . '8.png';
                    case 'BKNTSRA': return $baseUrl . '8.png';
                    case 'SCTBR': return $baseUrl . '1.png';
                    case 'SCTFG': return $baseUrl . '1.png';
                    case 'SCTRA': return $baseUrl . '4.png';
                    case 'SCTSNRA': return $baseUrl . '2.png';
                    case 'SCTSN': return $baseUrl . '7.png';
                    case 'SCTBl': return $baseUrl . '7.png';
                    case 'SCTTS': return $baseUrl . '8.png';
                    case 'SCTTSRA': return $baseUrl . '8.png';
                    case 'OVCBR': return $baseUrl . '3.png';
                    case 'OVCFG': return $baseUrl . '3.png';
                    case 'OVCRA': return $baseUrl . '5.png';
                    case 'OVCSNRA': return $baseUrl . '6.png';
                    case 'OVCSN': return $baseUrl . '7.png';
                    case 'OVCBl': return $baseUrl . '7.png';
                    case 'OVCTS': return $baseUrl . '8.png';
                    case 'OVCTSRA': return $baseUrl . '8.png';
            }
    }

    qbasic, 06 Декабря 2010

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

    +145

    1. 1
    2. 2
    3. 3
    <?php
    
    die 'Превьюшки пока что не обрабатываются.';

    Либо я уже спятил и что-то делаю не так, либо php.
    die ('Превьюшки пока что не обрабатываются.'); работает на ура, а данный пример выбивает мне Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING.
    Ничего не понимаю.

    7ion, 04 Декабря 2010

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