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

    +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
    function render_menu_item($tag,$value,$css=null){
    $length=strlen($tag);
       
        //Validate the tags
          if($tag[0]=='<' && $tag[$length-1]=='>'){
            $closingtag=str_replace('<','</',$tag);
            if($css)
                $tag=str_replace('>',' class="'.$css.'">',$tag);        
          }
          else{
            if($css){       
            $classtag='<'.$tag.' class="'.$css.'">';
            $tag='<'.$tag.'>';
            $closingtag=str_replace('<','</',$tag);
            $tag=$classtag;
            }
            else{
            $tag='<'.$tag.'>';
            $closingtag=str_replace('<','</',$tag);
            }
          }  
      return $tag.$value.$closingtag;
    }

    Вот так пишут доблестные Drupal-разработчики из Иордании. Сохранено оригинальное форматирование.

    Запостил: UncleAli, 13 Мая 2010

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

    • Я надеюсь результат хотя бы кэшируется?
      И зачем три раза определять $closingtag?
      ГК.
      Ответить
    • регулярные выражения - это сатанинские штучки!!
      Ответить
      • Не лучше ли заготовить нарезки в виде шаблона:
        <a href="%1$s" class="%2$s">%3$s</a>
        <!--LIMITER-->
        <ul class="%1$s">%2$s</ul>
        <!--LIMITER-->
          <li class="%1$s">%2$s</li>
        Ответить
    • Где вы видели закрывающий тег "</", обычно он такой "/>"?

      Какой-то вообще неработоспособный код.
      Ответить
      • <a>bla</a>
        Ответить
        • $closingtag=str_replace('<','</',$tag);
          никак не подходит под <a>bla</a>
          Ответить
          • Кэп кагбэ намекает, что из открывающего тэга <a> получают соответствующий закрывающий тэг </a>
            Ответить

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