BB коды на php часть 2

 

В предыдущей статье мы разбирали, как заменять bb коды на HTML коды. Рассмотрим случай, когда нужно отредактировать посланное сообщение. Ведь мы не можем показать конечный HTML код пользователю... Значит надо заменить теги обратно на bb код. Проблем с тегами b быть не должно...а как же быть с тегами которые содержат стили и ссылки? Я знаю два способа.

Первый: Отлавливать теги с помощью str_replace() и заменять их на bb аналог

Второй: Использовать preg_match_all() для того что бы сохранить текст (например ссылки) и preg_replace() для замены тегов. Вообщем то оба способа вполне работоспособны.

Продемонстрирую с начало первый

 

 

$text = str_replace("<a href=\"","[a url=",$text);
$text = str_replace("</a>","</a>",$text);
$text = str_replace("\">","]",$text);

Этот способ самый не удобный, так как строка $text = str_replace("\">","]",$text); заменит все "> на ] Поэтому я склонился больше ко второму способу:

preg_match_all("/<a href=\"(.*?)\">(.*?)<\/a>/",$text,$link);
for($i=0;isset($link[1][$i]);$i++)$text = preg_replace("/<a href=\".*?\">.*?<\/a>/",
"[a url=".$link[1][$i]."]".$link[2][$i]."</a>",$text,1);

Собственно все

 

Возможно Вам будут интересны следующие заметки

Комментарии (0)

Ваше имя *
Сайт
Ваш E-mail *
Ваше сообщение *
 
Вы не подтвердили условия политики конфиденциальности.
К данной статье пока нет комментариев.