Заменить текст между тегами в верхний регистр в PHP
Хочу сделать текст в верхнем регистре между тегами h2, но почему то следующий код не работает:
<?php
$str = '<h2>Марина</h2> <b>Алёша</b> случайный текст <h2>Наташа</h2> <h2>Катя</h2>';
$str = preg_replace_callback('|<h2>(.+)</h2>|iU', function($matches){
$upper = strtoupper($matches[1]);
return '<h2>'. $upper .'</h2>';
}, $str);
echo $str;