parser текста

Статус
В этой теме нельзя размещать новые ответы.

Christmasnet

Гуру форума
Регистрация
20 Окт 2008
Сообщения
151
Реакции
54
столкнулся с проблемой регулярного выражения.
помогите конвертировать этот текст в bbcode.

Код:
<span style="font-size: small; font-family: helvetica;">  текст  </span>

для выделением текста жирным я нашел такое выражение
PHP:
while ( preg_match( '/\<span style="font-weight: bold;"([^>]*)\>(.*?)\<\/span\>/is', $txt ) ) {
				$txt = preg_replace( '/\<span style="font-weight: bold;"([^>]*)\>(.*?)\<\/span\>/is', "[b]\\2[/b]", $txt );
			}

как сделать подобное выражение?
 
По аналогии делается очень просто:
PHP:
$txt = '<span style="font-size: small; font-family: helvetica;">  текст  </span>';
while (preg_match( '/\<span style="font-size: small; font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is', $txt)) 
{ 
	$txt = preg_replace( '/\<span style="font-size: small; font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is', "[size=9]\\2[/size]", $txt); 
}
echo $txt;
если нужен готовый парсер:
Для просмотра ссылки Войди или Зарегистрируйся
 
Пробуй:
PHP:
while ( preg_match( '/\<span style="font-size: small; font-family: helvetica;"\>(.*?)\<\/span\>/is', $txt ) ) {
	$txt = preg_replace( '/\<span style="font-size: small; font-family: helvetica;"\>(.*?)\<\/span\>/is', "[small]\\1[/small]", $txt );
			}
 
По аналогиии сделал вот так

PHP:
while ( preg_match( '/\<span style="font-size: small;(.*?)font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is', $txt ) ) {
				$txt = preg_replace( '/\<span style="font-size: small;(.*?)font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is', "[font=helvetica][size=\\1]\\2[/size][/font]", $txt );

вот этот момент меня интересует
PHP:
[font=helvetica][size=\\2]\\3[/size][/font]

В предложенных примерах обрабатывается только размер шрифта, а значение самого шрифта (helvetica).

small == в bbcode 9???
PHP:
"[size=9]\\2[/size]"
???
 
вот этот момент меня интересует
PHP:
[font=helvetica][size=\\2]\\3[/size][/font]

В предложенных примерах обрабатывается только размер шрифта, а значение самого шрифта (helvetica).

small == в bbcode 9???
PHP:
"[size=9]\\2[/size]"
???
не совсем понятна логика, обычно бб код парсят и конвертируют в хтмл.
разработчик сам задает ббкод и как его интерпритировать
тега [small] я лично нигде не встречал, [font] довольно редко
 
не совсем понятна логика, обычно бб код парсят и конвертируют в хтмл.
разработчик сам задает ббкод и как его интерпритировать
тега [small] я лично нигде не встречал, [font] довольно редко

я настраиваю стандартный rss импорт на DLE, при парсинге с некоторых сайтов новости не конвертируются в тэги BBCODE, если добавить в parser.class.php нужные регулярные выражения, то все работает. Вот я и остановился на том что не могу слепить регулярное выражение для приведенного выше кода HTML.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху