|
|
|
| Есть у меня новостная лента... В ней есть поддержка стандартных тэгов, заменяются с помощью str_replace. Такая проблема, если юзер откроет много [ b] , то всё что ниже этого поста становится жирным! Как решить такую проблему? Как это реализованно у Вас на форуме? | |
|
|
|
|
|
|
|
для: Trunk
(23.01.2006 в 12:38)
| | Используйте регулярные выражения. При их использовании заменяются только парные теги, т.е. если у тега нет пары, он просто не заменяется на html-тег. И ещё одно преимущество использования регулярных выражений - они не чувствительны к регистру BB-тега, т.е. [b ] или [B ] - для них не имеет значения. Вот код для трёх простых тегов b, i, u:
<?
$msg = preg_replace( "#\[b\](.+?)\[/b\]#is" , "<b>\\1</b>" , $msg);
$msg = preg_replace( "#\[i\](.+?)\[/i\]#is" , "<i>\\1</i>" , $msg);
$msg = preg_replace( "#\[u\](.+?)\[/u\]#is" , "<u>\\1</u>" , $msg);
?>
|
Регулярные выражения для остальных BB-тегов можно заимствовать из функции, опубликованной тут: http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=11806&page=1 | |
|
|
|