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

    +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
    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
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    <?php
    
    // БИБЛИОТЕКА PHP: функции для работы с XML
    
    // ФУНКЦИЯ: установка значения
    //	&$strDoc	- текст документа
    //	$strField	- имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
    //	$strValue	- значение поля
    function DocXML_Value(&$strDoc, $strField, $strValue) {
    	// определение длины текста
    	if (!($intDoc = strlen($strDoc))) return;
    	// определение кода поля
    	$strCode = $strField."1";
    	// определение длины кода поля
    	if (!($intCode = strlen($strCode))) return;
    	// поиск поля
    	if (!($intPos = stripos($strDoc, $strCode))) return;
    	// преобразование значения в кодировку UTF-8
    	$strText = iconv("WINDOWS-1251", "UTF-8", $strValue);	
    	// определение результата
    	$strDoc = Left($strDoc, $intPos).$strText.Right($strDoc, $intDoc-$intPos-$intCode);
    }
    
    // ФУНКЦИЯ: получение текста таблицы
    //	&$strDoc	- исходный документ
    //	$strField	- имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
    function DocXML_Table(&$strDoc, $strField) {
    	// определение длины текста
    	if (!($intDoc = strlen($strDoc))) return '';
    	// определение кода поля
    	$strCode = ">".$strField."1<";
    	// определение длины кода поля
    	if (!($intCode = strlen($strCode))) return '';
    	// поиск поля
    	if (!($intPos = stripos($strDoc, $strCode))) return '';
    	// поиск тега <w:tbl> до поля
    	if (!($intBegin = strripos(Left($strDoc, $intPos),'<w:tbl>'))) return '';
    	// поиск тега </w:tbl> после поля
    	if (!($intEnd = stripos($strDoc, '</w:tbl>', $intPos))) return '';
    	// определение результата
    	$strRes = Left(Right($strDoc,$intDoc-$intBegin),$intEnd-$intBegin+strlen('</w:tbl>'));
    	// определение результата
    	return $strRes;
    }
    
    // ФУНКЦИЯ: получение текста шаблона строки
    //	&$strTable	- текст таблицы
    //	$strField	- имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
    function DocXML_Row(&$strTable, $strField) {
    	// определение длины текста
    	if (!($intTable = strlen($strTable))) return '';
    	// определение кода поля 
    	$strCode = ">".$strField."1<";
    	// определение длины кода поля
    	if (!($intCode = strlen($strCode))) return '';
    	// поиск поля
    	if (!($intPos = stripos($strTable, $strCode))) return '';
    	// поиск тега <w:tr> до поля
    	if (!($intBegin = strripos(Left($strTable, $intPos),'<w:tr>'))) return '';
    	// поиск тега </w:tr> после поля
    	if (!($intEnd = stripos($strTable, '</w:tr>', $intPos))) return '';
    	// определение результата
    	return Left(Right($strTable,$intTable-$intBegin),$intEnd-$intBegin+strlen('</w:tr>'));
    }
    
    // ФУНКЦИЯ: замена строки в таблице
    //	&$strTable	- текст таблицы
    //	$strField	- имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
    //	$strRow	- текст строки
    function DocXML_RowSet(&$strTable, $strField, $strRow) {
    	// определение длины текста
    	if (!($intTable = strlen($strTable))) return;
    	// определение кода поля
    	$strCode = ">".$strField."1<";
    	// определение длины кода поля
    	if (!($intCode = strlen($strCode))) return;
    	// поиск поля
    	if (!($intPos = stripos($strTable, $strCode))) return;
    	// поиск тега <w:tr> до поля
    	if (!($intBegin = strripos(Left($strTable, $intPos),'<w:tr>'))) return;
    	// поиск тега </w:tr> после поля
    	if (!($intEnd = stripos($strTable, '</w:tr>', $intPos))) return;
    	// определение результата
    	$strTable = Left($strTable, $intBegin).Right($strTable, $intTable-$intEnd-strlen('</w:tr>'));
    }
    
    // ФУНКЦИЯ: добавление строки в таблицу
    //	&$strTable	- текст таблицы
    //	$strRow	- текст строки
    function DocXML_RowAdd(&$strTable, $strRow) {
    	// определение длины текста
    	if (!($intTable = strlen($strTable))) return;
    	// определение результата
    	$strTable = Left($strTable, $intTable-strlen('</w:tbl>')).$strRow.'</w:tbl>';
    }

    Взято с SQL.ru http://www.sql.ru/forum/1141421/pomogite-prochitat-xml

    QBatman, 08 Февраля 2015

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function resort($a){
        $res=mysql_query("select * from image where id_gal='".$a."' order by position");
        for ($q=array(); $w=mysql_fetch_assoc($res); $q[]=$w);
        for ($i=0; $i<count($q); $i++){mysql_query("delete from image where id='".$q[$i]['id']."'");}
        for ($i=0; $i<count($q); $i++){
        static $e=1;
            $res="INSERT INTO `image` ( `id` , `id_gal` , `user_id`, `file` , `podp` , `position`, `status` )
                    VALUES ('".$q[$i]['id']."', '".$q[$i]['id_gal']."', '".$q[$i]['user_id']."', '".$q[$i]['file']."', '".$q[$i]['podp']."', '".($e++)."', '".$q[$i]['status']."')";
            mysql_query($res);
        }
    }

    Сортируем фото после удаления одного из них. Зачем то нужен непрерывный position

    stechkh, 07 Февраля 2015

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

    +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
    <?if ($_SERVER['REQUEST_URI'] == "/zakazat-semena"):?>
    <?
        $cont = str_replace("asd", "asdqwe", $content);
        echo $cont;
    ?>
    <?elseif($_SERVER['REQUEST_URI'] == "/map"): ?>
    <?
    	$cont = str_replace('qwe', 'qweiop', $content);
    	echo $cont;
    ?>
    <?else:?>
    	{content}
    <?endif;?>

    deathburger777, 06 Февраля 2015

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    ...
    $personInfos = $query->getResult();
    foreach ($personInfos as $personInfo) {
        return $personInfo;
    }
    /* we lost our person */
    return false;

    Ребята-оутсорсеры насмешили наш отдел))

    zinovyev, 06 Февраля 2015

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    $var = null;
    
    // Не вызовет: "Notice: Undefined Index 0"
    var_dump($var[0][1][2][3]['route']); // NULL

    PHP не показывает Notic'ы если переменная или значение является NULL'ом при попытки получить доступ к элементам массива (заметил это когда функция могла возвратить null или массив). Нашел это интересным.

    volter9, 05 Февраля 2015

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

    +154

    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
    public static function ShowClaimsByManager($manager_id,$status,$offset_limit,$rows_limit){
            $DBH = Registry::get('DBH');
            $STH = $DBH ->prepare(
                "SELECT * FROM claims,claims_status
                 WHERE claims.manager_id = :manager_id
                 AND claims.id = claims_status.claim_id
                 AND claims_status.status = :statusc
                 LIMIT :offsetl, :rowsl" );
            $STH->bindParam(':manager_id', $manager_id, PDO::PARAM_STR);
            $STH->bindParam(':statusc', $status, PDO::PARAM_STR);
            $STH->bindParam(':offsetl', $offset_limit, PDO::PARAM_INT);
            $STH->bindParam(':rowsl', $rows_limit, PDO::PARAM_INT);
            $STH->execute();
            $result = $STH->fetchAll(PDO::FETCH_ASSOC);
            return $result;
        }

    Парень явно любит ctrl+c и ctrl+v
    про $STH->execute($data); не не слышал.

    werdan, 04 Февраля 2015

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php // if you delete this the sky will fall on your head
    endwhile; //endwhile have_posts()
    else: //have_posts()
    ?>
    <p>Sorry, no posts matched your criteria.</p>
    <?php endif; ?>
    <!-- // this is just the end of the motor - don't touch that line either :) -->

    ...мм, Ок!

    elvis, 04 Февраля 2015

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

    +137

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
    	/* ... */
    } catch (\Exception $e) {
    	@trigger_error($e->getMessage(), E_USER_WARNING);
    }

    ini_set('tsundere_mode', '1');

    Stallman, 04 Февраля 2015

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
         * Verify displayed special product price on product page(front-end) equals passed from fixture.
         *
         * @return null|string|void
         */
        protected function verifySpecialPrice()
        {
            return null;
        }

    Судя с того, что написано в дескрипшене, а именно
    @return void
    даный метод можно свести к
    return;
    или даже
    //

    Lord723518, 03 Февраля 2015

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /* Проект на Kohana Framework
    Таблица "курсы" (которую товарищ умудрился ещё обозвать tracks) имеет связь "многие ко многим" с таблицей "разделы курсов". 
    Для этого в ней есть поле section_id вот такого содержания:
    2|3|4|6|9
    А вот так запрашиваются курсы из определённой категории:
    */
    $tracks = ORM::factory('Tracks')->order_by($order_by,'ASC')->where('section_id','LIKE','%'.$this->track_id.'%')->find_all()->as_array();
    // Ну то есть, если категорий будет больше 10, то появятся неожиданные результаты....

    Всегда весело смотреть, как люди, не знающие как делать связь "многие-ко-многим" изобретаю велосипеды....

    mkramer, 28 Января 2015

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