Php preg_replace () используя

0

Я пытаюсь изменить некоторые части строки. Я использовал функцию preg_replace() для этой путаницы, но я не смог добиться успеха.

Вот пример.

$str = "Suspendisse rutrum rhoncus leo vitae vehicula. <span class="sdsad"> Nunc nec dapibus nisi.</span> Donec facilisis mauris sapien, eget blandit enim  dignissim auctor. <span style="text-decoration: underline;" class="sadsad">Nullam a porta orci.</span>";

Мне нужно, чтобы части начинались с "<span" и в конце концов до ">" charecter и превращали его <p> или что-то еще.

$str = preg_replace('/<span.*>/', '<p>', $str);

Я пытаюсь решить это так, но он возвращает то же значение.

Что мне нужно сделать?

Спасибо..

Теги:
string
replace
preg-replace

2 ответа

1

Это Regex сделает трюк для вас.

$str = 'Suspendisse rutrum rhoncus leo </span> vitae vehicula. <span class="sdsad"> Nunc nec dapibus nisi.</span> Donec facilisis mauris sapien, eget blandit enim  dignissim auctor. <span style="text-decoration: underline;" class="sadsad">Nullam a porta orci.</span>';
$str_replaced = preg_replace('/<(\/{0,1})span[^>]*>/','<$1p>',$str);
echo $str_replaced;

Он по желанию поместит конечную косую черту в теги, чтобы вам понадобился только один вызов.

  • 0
    Путь сложный ?!
  • 0
    Не за что. Таким образом, вы будете заменять <span clas = "xyz"> и </ span> на <p> и </ p> за один раз.
0

Вы забыли захватную группу здесь ()

$str = preg_replace('/<span(.*)>/', '<p>', $str);

Подробнее здесь: http://www.regular-expressions.info/brackets.html

  • 0
    к сожалению, я получаю тот же результат.
  • 0
    @brk: я проверял это на infoheap.com/tool/php-preg_replace-sandbox - работает отлично. Может быть какой-то кеш?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню