Hier eine Lösung die ich gefunden (und dann kopiert ) habe, die ich aber nicht verstehe!
Ziel: Ich will in einem String alle Textstellen fett schreiben, die "block" heißen. Davon ausgenommen werden sollen Fundstellen innerhalb TAG's. Hier der kopierte und voll fnuktionstüchtige Lösungsansatz:
(folge)richtige Ausgabe:
<blockquote> <b>blockquote</b> </blockquote>
Warum funktioniert das? Ich verstehe es nicht! Genauer gesagt den Pattern:
((<[^>]*)|$search)
Kann mir das mal einer erklären?
VG
MIcha
Ziel: Ich will in einem String alle Textstellen fett schreiben, die "block" heißen. Davon ausgenommen werden sollen Fundstellen innerhalb TAG's. Hier der kopierte und voll fnuktionstüchtige Lösungsansatz:
PHP:
$string='<blockquote> blockquote </blockquote>';
$search="block";
$string=preg_replace("/((<[^>]*)|$search)/ei",'"\\1" == "\\2" ? "\\1" : "<b>\\1</b>"',$string);
echo $string;
(folge)richtige Ausgabe:
<blockquote> <b>blockquote</b> </blockquote>
Warum funktioniert das? Ich verstehe es nicht! Genauer gesagt den Pattern:
((<[^>]*)|$search)
Kann mir das mal einer erklären?
VG
MIcha