Zur Navigation

Eigener BBCODE

1 Christoph (Gast)

Hi, ich bin grade dabei eigenen BBcode anzufertigen und komme an folgender Stelle nicht weiter:

$urlweb=$meinText;
$reg_web = "/\[url=([^]]*)\]/i";
$tauschweb='<a href="\1">';
$$meinText = preg_replace($reg_web, $tauschweb, $urlweb);

$$meinText=str_replace("[/url]", "</a>", $meinText);

Damit wird eine URL im Stil von

[url=http://www.test.de]testseite[/url]

zu

<a href=http://www.test.de>testseite</a>
umgewandelt.

Das funktioniert bei einer Seite auch super und kann mit

$urlweb2=$oldText;
$reg_web2 = '/\<a href="([^]]*)\">/i';
$tauschweb2= '[url=\1]';
$oldText = preg_replace($reg_web2, $tauschweb2, $urlweb2);

$oldText=str_replace("</a>", "[/url]", $oldText);

auch zurückformatiert werden in den BBCode.

Leider funktioniert das immer nur bei der ersten URL, bei der zweiten wird dann der URL befehl nicht mehr ersetzt und es erscheint beispielsweise nur

[url=http://www.test">testseite1[/url]

<a href="http://www.test.de]testseite2[/url]

Wie man sieht ist das natürlich absolut unerwünscht. ICh wäre froh, wenn mir jemand ne Hilfestellung geben könnte!

Danke schön.

13.12.2006 08:46

2 Jörg Kruse

Hallo Christoph,

hier könnte ein Ungreedy-Flag (U) helfen, dass bei der Ersetzung nicht der Anfang des einen Ausdrucks und das Ende eines anderen sondern nur das kleinstmögliche Muster ersetzt wird:

$urlweb2=$oldText;
$reg_web2 = '/\<a href="([^]]*)\">/iU';
$tauschweb2= '[url=\1]';
$oldText = preg_replace($reg_web2, $tauschweb2, $urlweb2);

$oldText=str_replace("</a>", "[/url]", $oldText);

Nachtrag:
leider verschluckt mein Forum die BBCodes in deinen Beispielen - aber man kann sie über den Zitat-Button sichtbar machen

13.12.2006 10:07

3 Christoph (Gast)

Danke für die Hilfestellung.
Die von dir angegebene Möglichkeit ins Skript integriert funktioniert super.
Ich werde das mal weitertesten (und erstmal lesen und versuchen zu verstehen, was an der neuen Funktion eigentlich anders ist ;-) ).

Es ist doch ganz schön schwierig, wenn man auf die open-source BB-Code-Lösungen verzichten möchte!

13.12.2006 13:36

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]