Zitat Zitat
Aber das ist mal wieder ein Beweis für die Kompliziertheit von Windows.
Naja, Macs haben, soweit ich weis, auch was eigenes..

Zitat Zitat
Wie kann ich in userangaben nach bestimmten Textstücken suchen und diese durch einen anderen Text ersetzen?
Dazu verwendet man Reguläre Ausdrücke (Regex).
Dazu gibt es in PHP die erge(i)_*() und die preg_*() Funktionen. Allerdings werden heutzutage nur noch die preg Funktionen verwendet, da sie schneller und flexibler sind.

Beispiel (Ich habe keine php-Tags genommen, weil diese die [B*] Tags nicht anzeigen):
Code:
$text = preg_replace('#\[b\](.*)\[/b\]#Uis', '<b>$1</b>', $text );
Die Gatterzeichen trennen den Ausdruck von den Modifikatoren.
[ und ] müssen escaped werden.
() kennzeichnet einen bestimmten Bereich, hier den zwischen [B*] und [/B*], . (der Punkt) sagt, das es sich um ein Beliebiges Zeichen handeln kann, der * sagt, das beliebig viele beliebige Zeichen kommen dürfen.
Nach den Trennzeichen kommen die Modifikatoren.
U für Ungreedy (nicht gierig): Dieser Modifikator wird gesetzt, damit dieser String:
Code:
[B*] hallo [B*] lila [/B*] ku [/B*]
durch
Code:
<b> hallo <b> lila </b> ku </b>
ersetzt wird, anstatt durch
Code:
<b> hallo [B*] lila [/B*] ku </b>
da ein 'gieriger' Audruck alles zwischen dem ersten und letztem [B*] bzw. [/B*] ignoriert.
i für case-insensitive: Wenn dieser Modifikator gesetzt ist, erkennt die Funktion [B*] als auch [b*].
s für [hm.. ka^^]: Damit erkennt der Punkt (belibiges zeichen) auch Zeilenumbrüche.

Der Ersatz: $0 steht für die Original Zeichenkette, $1 gibt den ersten Teilausdruck zurück, hier also was zwischen den B-Tags stand (Achtung, die $0 und $1 sind keine Variablen, d.h. du musst sie direkt in den Ersatz einbauen, nicht etwa '<b>' . $1 . '</b>').

Bei allen [B*] und [/B*] den Stern wegdenken, die sind nur da, um Fette Schrift zu vermeiden.

Das hört sich vielleicht kompliziert an, ist aber mit etwas Übung ganz einfach. Sieh dir am besten das Kapitel XCV. Reguläre Ausdrücke Funktionen (Perl-kompatibel) im PHP Manual an.