2017-01-04 7 views
1

У меня есть функцияPHP Regex - Удалить все <br> тег

function showBBcodes($text) { 
    // BBcode array 
    $find = array(
    '~\[b\](.*?)\[/b\]~s', 
    '~\[i\](.*?)\[/i\]~s', 
    '~\[u\](.*?)\[/u\]~s', 
    '~\[quote\](.*?)\[/quote\]~s', 
    '~\[size(.*?)\=(.*?)\](.*?)\[/size\]~s', 
    '~\[color(.*?)\=(.*?)\](.*?)\[/color\]~s', 
    '~\[url\]((?:ftp|https?)://.*?)\[/url\]~s', 
    '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s', 
    '~\[b_id\](.*?)\[/b_id\]~s', 
    '~\[tex\](.*?)\[/tex\]~s', 
    '~\[sup\](.*?)\[/sup\]~s' 
); 
    // HTML tags to replace BBcode 
    $replace = array(
    '<span stype="font-weight: bold;"> $1</span>', 
    '<i>$1</i>', 
    '<span style="text-decoration:underline;">$1</span>', 
    '<pre>$1</'.'pre>', 
    '<span style="font-size:$2px;">$3</span>', 
    '<span style="color:$2;">$3</span>', 
    '<a class="blue-font" href="$1">$1</a>', 
    '<a class="blue-font" href="$1"><img src="$1" alt=""></a>', 
    '<sub>$1</sub>', 
    '<a class="blue-font" href="http://jabber.pozitiv-r.ru/cgi-bin/mathtex.cgi?$1"><img src="http://jabber.pozitiv-r.ru/cgi-bin/mathtex.cgi?$1" alt=""></a>', 
    '<sup>$1</sup>' 
); 
    // Replacing the BBcodes with corresponding HTML tags 
    return preg_replace($find,$replace,$text); 
} 

Все что мне нужно удалить все </br> из [текс] [/ текс] тега. Я устал изменять свое регулярное выражение, например, ^<br.*?>#s, но оно не работает.

+0

вы можете попробовать мою библиотеку Shortcode: https://github.com/thunderer/Shortcode? Это позволит вам сэкономить массу времени для обработки коротких кодов. –

ответ

0

Try что-то вроде этого^

$text = preg_replace_callback(
    '~\[tex\].*?\[/tex\]~s', 
    function ($matches) { 
     return preg_replace('~<br.*?>~', '', $matches[0]); 
    }, 
    $text 
); 

Добавьте мир кода перед return заявления.

+0

Спасибо, что работает – Maxim

 Смежные вопросы

  • Нет связанных вопросов^_^