Einzelnen Beitrag anzeigen

Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

[PHP]preg_replace und UBB-Tags....

  Alt 3. Jan 2004, 19:49
HAllo,
ich plage mich den regulären Ausdrücken und mit der PHP-Funktion preg_replace herum.
Sinn ist es, einen kleinen Parser zu schreiben, der mir UBB-Tags wie hier im Forum durch HTML-Tags ersetzt.
Das klappt auch super . Allerdings will ich auch, wenn kein [URL]-Tag vorhanden ist, dass eine URL die mit http:// anfängt geparst wird.
Das ist allerdnigs schwieriger als man denkt, da schon umgewandelter Code nochmal umgewandelt wird.
Hier mal der Source:
Code:
  /* [url]http;//www.ttt.de[/url] */
  $text = preg_replace("/\[url\]http:\/\/(.*?)\[\/url\]/si", "[url="http://\\1"]http://\\1[/url]", $text);

  /* [url]www.ttt.de[/url] */
  $text = preg_replace("/\[url\](.*?)\[\/url\]/si", "[url="http://\\1"]http://\\1[/url]", $text);

  /* [url]http://www.ttt.de[/url] */
  $text = preg_replace("/\[url=www(.*?)\](.*?)\[\/url\]/si", "[url="http://www\\1"]\\2[/url]", $text);

  /* [url=http://www.test.de]test[/url] */
  $text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si", "[url="\\1"]\\2[/url]", $text);

  /* [url]http://www.tset.de[/url] (ohne url-tag) */
  $text = preg_replace("/\[^\]]http:\/\/(.*?)[^x] /si", "[url="\\1"]\\2[/url]", $text);
Wie gesagt: Beim letzten fehlen mir Ideen wie ich das parsen könnte. Könnt ihr mir helfen?
Alexander
  Mit Zitat antworten Zitat