Нужна помощь с preg_replace

WP

^_^
Я бы не стал прибегать к извращениям с одной регуляркой, т.к. эти извращения всегда будут заточены под конкретный случай.
Я бы использовал preg_replace_callback для замены всех вхождения тега <p>, а внутри функции бы составлял нужную замену.
 

Kela

Новичок
Splurov
Твой код работает на моих примерах. Спасибо!

Проблемы возникают когда тегов <b> больше, чем один. Наверное, действительно придется использовать preg_match_all.
 

Kela

Новичок
Splurov
Здесь исходник с твоим текстом, здесь результат работы.

-~{}~ 20.08.07 08:49:

Итак, решил все с помощью preg_replace_callback.

Всем спасибо за участие!

Вот исходник:

PHP:
$msg = preg_replace_callback('~<div class="someclass">(.*?)</div>~ius', callback_someclass, $msg);

function callback_someclass($matches)
{
	return strip_tags($matches[1], '<a>');
}
-~{}~ 20.08.07 08:52:

Не могу отредактировать сообщение :( Ну, кому надо - тот поймет... Для чистоты ответа, нужно вот так, конечно:

PHP:
$msg = preg_replace_callback('~<p class="someclass">(.*?)</p>~ius', callback_someclass, $msg); 

function callback_someclass($matches) 
{ 
    return '<p class="someclass">' . strip_tags($matches[1]) . '</p>'; 
}

Вариантов реализации масса - главное, я думаю, идея понятна...
 
Сверху