Mailinglisten-Archive |
Hi Liste,
ich habe folgende Funktion:
param $string = beliebiger Text
param $words = eine Wortliste getrennt durch Kommas
return alle in $words aufgelisteten Wörter werden durch ein {m}
eingeschlossen
function marker($string, $words)
{
$words = explode(',',$words);
$temp = array();
foreach($words as $word) {
$temp[] = preg_quote(trim($word));
}
$words = implode('|',$words);
return preg_replace('#('.$words.')#is','{m}\1{m}',$string);
}
Für normalen Klartext funktioniert das ganz wunderbar. Wie kann ich jetzt
verhindern, das die Wörter auch innerhalb von HTML-Tags markiert werden?
Bsp:
$words = 'banane';
<a href="/content/banane.php">Bananen Content</a>
--> marker
Soll: <a href="/content/banane.php">{m}Banane{m}n Content</a>
Ist: <a href="/content/{m}banane{m}.php">{m}Banane{m}n Content</a>
Ich hoffe ich habe das Problem verständlich dargestellt ;-)
Das beste wäre natürlich, wenn das in das Pattern des preg_replace
integriert wäre. Aber jeder andere möglichst performante Ansatz wäre super.
Gruss
Andreas Lange
--
Haas Media GmbH | Phone +49(0)511 27038-70
Agentur für moderne Medien | Fax +49(0)511 27038-69
Hindenburgstrasse 38 | Web http://www.haas-media.de/
30175 Hannover | Mail andreas.lange_(at)_haas-media.de
Deutschland/Germany | PGPFP 4204 C703 2D73 58DA F75B C1F2 E524 6949
php::bar PHP Wiki - Listenarchive