Autor Zpráva
states68
Profil *
Ahoj, pomocí fce str_replace chci udělat z vybraného slova odkaz.

$text = str_replace("slovo","<a href=\"http://www.nejakadomena.cz\" target=\"_blank\">slovo</a>",$text);


Vše funguje OK, ale problém nastane, když se dané slovo vyskytuje v title nebo alt u obrázků - pak provede výše uvedené i v těch title nebo altech. Potřeboval bych, aby v $text str_replace ignoroval vše co je v title, alt nebo rovnou vše v <img src...>

díky za každou radu či odkaz

states68

Moderátor nightfish: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
AM_
Profil
Takhle ti to bude ignorovat "slovo" všude uvnitř HTML tagů (tedy mezi < >).

$text = preg_replace("~slovo(?![^<]*>)~i","<a href=\"http://www.nejakadomena.cz\" target=\"_blank\">slovo</a>",$text);

Předpokládá to validní HTML, takže pokud tam budeš mít něco ne úplně správně zapsané (třeba <b>slovo > 5</b> místo <b>slovo &gt; 5</b>), tak ti to nebude fungovat.
states68
Profil *
děkuji moc, funguje to bezvadně - http://www.ok-recepty.cz/view.php?nazevclanku=grilovane-kvetakove-placicky-bez-tuku-foto-postup&cisloclanku=2008070006

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: