Функция вставки рекламы в середину текста

В общем-то все понятно. Кратко поясню:

Задача: вставить в середину текста рекламу.

$str - строка текста, в которую нужно вставить рекламу.
$ad - сама реклама
$tag - тег, который будет использоваться в качестве отправной точки, 
обязательно должен быть закрывающим, я использовал </p>
function insert_ad_middle($str,$ad,$tag)
{
$strlen=strlen($str); // количество символов

$data = (int)($strlen /3); // делим на три части

$text1  = substr($str,0,$data); // получаем первую часть текста
$text2  = substr($str,$data,$data); // получаем вторую часть текста
$text3  = substr($str,$data*2,$strlen);  // получаем третью часть текста

$pos = strpos($text2, $tag);
if ($pos!== false){ // есть ли нужный тег в строке?
 $text2=explode($tag,$text2,2); //разбиваем до тега и после него
 
$ad=$tag.'

'.$ad.'

'; // вставляем рекламу $full = $fulltext=$text1.$text2[0].$ad.$text2[1].$text3; // собираем текст вкучу return $full; } else { return $str; // тег не найден, просто возвращаем строку } }

пример

$str="<p>123</p>
<p>456</p>
<p>fgfggffgf</p>
<p>789</p>";
echo insert_ad_middle($str,'yo!','</p>');

Пользуйтесь :)