"PHP" / Говнокод #19516 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
foreach ($child as $ch) {
            if ($ch->nodeName === 'w:style') {
                $sum++;
                if ($ch->hasAttributes()) {
                    /** @var DOMAttr $attribute */
                    foreach ($ch->attributes as $attribute) {
                        if ($attribute->name === 'styleId') {
                            if ($attribute->value == $sTempStyle) {
                                /** @var DOMElement $styleNode */
                                foreach ($ch->childNodes as $styleNode) {
                                    if (isset($styleNode->tagName) && $styleNode->tagName === 'w:basedOn') {
                                        $basedOn    = $styleNode->getAttribute('w:val');
                                        $properties = $this->wordStyle2Array($basedOn, $tagName, $properties);
                                    }
                                    if (isset($styleNode->tagName) && $styleNode->tagName === $tagName) {
                                        $elements = $styleNode->childNodes;
                                        /** @var DOMElement $element */
                                        foreach ($elements as $element) {
                                            if (isset($element->tagName)) {
                                                switch ($element->tagName) {
                                                    case 'w:color':
                                                        if ($element->hasAttribute('w:val')) {
                                                            $properties['color']['hex'] = '#' . $element->getAttribute
                                                                ('w:val');
                                                        }
                                                        break;
                                                    case 'w:rFonts':
                                                        if ($element->hasAttribute('w:ascii')) {
                                                            $properties['font_family'] = $element->getAttribute('w:ascii');
                                                        }
                                                        break;
                                                    //кейсы - бесконечные как осень в России
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

Чувак, мы слышали ты любишь плодить уровни вложенности, поэтому мы написали switch в if в foreach в if в foreach в if в if в foreach в if в if в foreach, кажется.

Запостил: mad_money mad_money, (Updated )

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

  • да, мог бы и без вложенности захуярить -- на goto.
    Ответить
    • "w" это namespace для docx xml. Код из phpdocx - либу можно всю постить на говнокод, например там есть метод на > 700 строчек и лишь ограничение формы в 100 строк не позволяет продемонстировать пиздец там происходящий.
      Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8