За последние 24 часа нас посетили 20097 программистов и 1670 роботов. Сейчас ищут 1863 программиста ...

Помогите убрать перевод строки после обработки BBCode

Тема в разделе "Регулярные выражения", создана пользователем klvd, 4 мар 2010.

  1. klvd

    klvd Активный пользователь

    С нами с:
    4 мар 2010
    Сообщения:
    1
    Симпатии:
    0
    Ситуация такая:
    Есть текст с bb-кодом, который я тяну из textarea и обрабатываю.
    После всех обработок выполняю функцию nl2br().
    Все замечательно кроме обработки некоторых тегов типа списков, блоков и таблиц.
    Символ перевода строки остается и потом превращается в <br /> после каждой строки

    Есть задача конструкцию
    Код (Text):
    1.  
    2. [tag]
    3.  
    4. текст
    5.  
    6. [/tag]перенос строки
    7. продолжение
    превратить в

    Код (Text):
    1.  
    2. <tag>текст</tag>продолжение
    то есть убрать все переносы строки сразу после открывающего, переносы строки непосредственно перед закрывающим тегом и один комплект переноса строки сразу после закрывающего тега. Такая штука почему-то не работает

    Код (Text):
    1. $message = preg_replace("#\[tag\][\r\n]*([\S])[\r\n]*\[\/tag\][\r\n]#isU", '<tag>\\1</tag>', $message);
    Помогите написать регулярку[/code]
     
  2. george.mikal

    george.mikal Активный пользователь

    С нами с:
    21 апр 2010
    Сообщения:
    1
    Симпатии:
    0
    i knows PHP scripting...may be any 1 can answer u...plz don't mind
     
  3. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <?php
    2.   ini_set('display_errors',1);
    3.   error_reporting(E_ALL);
    4.  
    5.  setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
    6.  
    7.  
    8. $m='[tag]
    9.  
    10. текст
    11.  
    12. [/tag]
    13.  
    14. продолжение';
    15.  
    16. //<tag>текст</tag>продолжение
    17.  
    18.    
    19. $poisk='/(\n)/si';
    20.  
    21. $zamena='';
    22.  
    23.  $new=preg_replace($poisk,$zamena,$m);
    24.  
    25.  
    26.  $new2=str_ireplace('[/tag]','</tag>',$new);
    27.  
    28.  $new3=str_ireplace('[tag]','<tag>',$new2);
    29.  
    30.    
    31.    echo $new3;
    32.    
    33.    
    34.   ?>