Я пытаюсь изменить некоторые части строки. Я использовал функцию 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);
Я пытаюсь решить это так, но он возвращает то же значение.
Что мне нужно сделать?
Спасибо..
Это 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;
Он по желанию поместит конечную косую черту в теги, чтобы вам понадобился только один вызов.
Вы забыли захватную группу здесь ()
$str = preg_replace('/<span(.*)>/', '<p>', $str);
Подробнее здесь: http://www.regular-expressions.info/brackets.html