ereg_replace (Reguläre Ausdrücke)

worki2k1

Erfahrenes Mitglied
Hallo Leute,

ich brauche dringend mal eure Hilfe...

Ich schreib grad an einem Forum und bin grad dabei die Filterfunktionen zu entwickeln. Ich habe alle HTML-Tags deaktiviert und hab nun selbst Tags erstellt, in folgender Form:

Code:
[ b ]fetter Text[ /b ] <---- wird fett (ohne die Leerzeichen in den Tags)

Das mach ich mit folgendem Script:

Code:
$s = ereg_replace("\[b\]([[:alnum:] [:graph:][:space:]+)\[/b\]", "<b>\\1</b>", $s);

Das ganze geht nur leider nicht mit ä, ö, ü. Ich habs auch schon vorher mit htmlentities(); probiert. Das bringt aber das gesamte System durcheinander.

Kann mir jemand weiterhelfen???

ndbd
worki
[Editiert von workaholic am 16.02.2001 um 14:22]
 
Das ganze geht nur leider nicht mit ä, ö, ü. Ich habs auch schon vorher mit htmlentities(); probiert. Das bringt aber das gesamte System durcheinander.

hi
dafür einfach die html codes nutzen?
ä = &amp;auml;
ö = &amp;ouml;
ü = &amp;uuml;

wenn ich mich nicht irre.

ka sorry
 
Hi @ all!

@TTrek:
htmlentities() macht ja aus
ä = &amp;auml;
ö = &amp;ouml;
ü = &amp;uuml;
usw.

@workaholic:
Hast du es auch schon mit
PHP:
$s = preg_replace("/\\[b\\]([\w]+)\\[/b\\]/","<b>\\1</b>",$s);

ausserdem kannst du bei dieser Funktion sogar eine Liste von Pattern und Replacements uebergeben.
PHP:
$pattern[] = "/\\[b\\](([\w]+)\\[/b\\]/";
$pattern[] = "/\\[i\\](([\w]+)\\[/i\\]/";
$replacement[] = "<b>\\1</b>";
$replacement[] = "<i>\\1</i>";

$s = preg_replace($pattern, $replacement, $s);

Ich hoffe,
ich konnte dir helfen.
 
Jo, Danke Maximka

Wie du vielleicht bemerkst hatte ich diesen Beitrag schon im Februar geschrieben. Das Problem ist schon längst gelöst. Genau deine Lösung :)

Trotzdem danke nochmal
 
Zurück