Конвертирование HTML в BBCode

S
На сайте с 22.08.2011
Offline
15
922

Доброй ночи.

Сегодня у меня случилась такая ситуация, мне нужно конвертировать HTML тэги в BBCode, то есть например у нас есть такой код:

<?

echo "<u><b><font color=\"darkblue\">Конвертирование HTML в BBCode</font></b></u>";

?>

На выходе должно получится,

PS: Вставил картинкой, а то форум их кушал.

Ну вот, конечно нужно чтобы конвертер обрабатывал не только эти тэги, ну и другие, надумал сделать через функцию PHP str_replace, но мне кажется это не читабельно и не лаконично, хотелось бы услышать варианты по-интереснее, но рассмотрю все варианты (str_replace) в том же числе, ну вроде бы все, если будут вопросы пишите отвечу, ну вот собственно и все, всего доброго друзья !

Joker-jar
На сайте с 26.08.2010
Offline
167
#1

<?php


$patterns = array(
'u' => 'u',
'b' => 'b'
);

$matches = array(); $replaces = array();
foreach ( $patterns as $key => $val )
{
$matches[] = '/\<' . $key . '\>(.*)\<\/' . $key . '\>/isU';
$replaces[] = '[' . $val . ']\\1[/' . $val . ']';
}

$text = '<u><b><font color="darkblue">Конвертирование HTML в BBCode</font></b></u>';

echo preg_replace($matches, $replaces, $text);

?>

Как-то так. Но это для таких простых кодов (не для всяких ...)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий