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