Text ersetzen für BB Code, str_replace?

S

SilverVegeto

Hi,

ich möchte gerne das User BB-Code einfügen können und der ersetzt wird.
Dabei habe ich auch keine Probleme benutze dafür str_replace.

Jetzt möchte ich aber gerne noch BB-Code benutzen der so aufgebaut ist:
[link=http://www.domain.de]
oder
[b=blabla]
oder
[youtube=jUzasdj]

Meine Frage:
Wie kann PHP diesen Aufbau sinnvoll erkennen, so dass dies in den richtigen Code umgewandelt wird?

Danke.
 
Hallo,

für so etwas sind reguläre Ausdrücke wie geschaffen ;)
Damit ist es möglich, nach einem Muster zu suchen oder ein bestimmtes Muster durch ein anderes zu ersetzen.

Die benötigten Funktionen und eine kleine Einführung zu den RegEx führe ich unten auf.

Als Beispiel hier gleich mal dein [youtube=KEY]-Link.
PHP:
  $text = 'Servus, dies ist ein Youtube-Link:
[youtube=BqXP6z5Qdh8]

Jetzt kommt ein paar ungültige Links:
[youtube=www.youtube.com/watch?v=BqXP6z5Qdh8]
[youtube=BqXP6z5Qdh8
[youtube=?v=BqXP6z5Qdh8]

Und wieder Text :)
';

  $regSearch = '#\[youtube=([a-z0-9]{11})\]#Uis';   // Der reguläre Ausdruck
  $regReplace = '<a href="http://www.youtube.com/watch?v=\1">Video auf Youtube anschauen</a>';    // Die Ersetzung, welche vorgenommen wird
  
  $text = preg_replace($regSearch, $regReplace, $text);    // Hier wird der Text ersetzt.

Referenzen & Links:
preg_replace()
preg_match()
Reguläre Ausdrücke Allgemein

Reguläre Ausdrücke auf Wikipedia


Gruß
Bratkartoffel
 
@Bratkartoffel: Vielen Dank für diese super ausführliche Erklärung!

Hat voll geholfen :)
 
Zurück