В общем-то все понятно. Кратко поясню:
Задача: вставить в середину текста рекламу.
$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>');
Пользуйтесь :)