Autor Zpráva
andynewcastleth
Profil
Mám například článek. A například sedmý <p> by jsem chtěl nahradit za $reklama<p>.

Zkoušel jsem např. toto, ale nedaří se:

function str_replace_n($search, $replace, $subject, $occurrence)
{
    $search = preg_quote($search);
    return preg_replace("/^((?:(?:.*?$search){".--$occurrence."}.*?))$search/", "$1$replace", $subject);

}



 $vysledek = str_replace_n("<p>","$reklama<p>", $vysledek, $odstavcu);
Kajman
Profil
Špidlaté závorky máte hned za hledaným výrazem, tak by musely být hned za sebou, kvantifikátor asi patří dál.

Osobně bych na to spíše použil mb_strpos s offsetem, asi to bude rychlejší.
andynewcastleth
Profil
Já nevím, kdyby tady aspoň byly nějaké ukázky... .

Toto vždy vloží na začátek druhého odstavce.

//pocet odstavcu deleno dvema
    $odstavcu = floor((substr_count($row["text"], '<p>'))/2);
 
//pozice poloviny clanku
    $pos = mb_strpos($row["text"], '<p>', $odstavcu);
 
//vlozeni
    $str_to_insert="INSERTED";
    $newstr = substr_replace($row["text"], $str_to_insert, $pos, 0);
    
    echo $newstr; 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0