You are not logged in.

wcf.regNote.message

TheRock

Beginner

  • "TheRock" started this thread

Posts: 9

  • Send private message

1

Thursday, August 2nd 2007, 11:33pm

aus [.URL] tag <a href... machen

hallo
bin grad am erstellen meiner homepage & habe ein problem beim Gästebuch

und zwar will ich ein [.URL] tag umwandeln a la <a href=...

bsp:
aus
[.URL=http://google]GoTo Google![./URL]
soll
<a href="http://google.de">GoTo Google!</a>
werden

btw die punkte sind mit absicht dass das wbb das nicht automatisch umwandelt ;)

lg
TheRock

Noisy

Trainee

Posts: 65

Location: Frankfurt

  • Send private message

2

Thursday, August 2nd 2007, 11:53pm

Hat das Dinge grade eh offen, also hier:

PHP Source code

1
2
$str preg_replace('=\[url\](.*)\[/url\]=Uis''<a href="\1" title="\1" target="_blank">\1</a>'$str);
$str preg_replace('#\[url=(.*)\](.*)\[/url\]#Uis''<a href="\1" title="\1" target="_blank">\2</a>'$str);

TheRock

Beginner

  • "TheRock" started this thread

Posts: 9

  • Send private message

3

Friday, August 3rd 2007, 12:48am

thx funktioniert 1a ;)

sourceforge

Beginner

Posts: 3

  • Send private message

4

Tuesday, January 8th 2008, 2:23am

Quoted

Original von Noisy
Hat das Dinge grade eh offen, also hier:

PHP Source code

1
2
$str preg_replace('=\[url\](.*)\[/url\]=Uis''<a href="\1" title="\1" target="_blank">\1</a>'$str);
$str preg_replace('#\[url=(.*)\](.*)\[/url\]#Uis''<a href="\1" title="\1" target="_blank">\2</a>'$str);

warum 2 verschiedene delimiter verwenden????
so find ich das viel besser:

PHP Source code

1
2
$str preg_replace("°\[url=(.*)\](.*)\[\/url\]°Usi""<a href=\"\\1\" title=\"\\1\" target=\"_blank\">\\2</a>"$str);
$str preg_replace("°\[url\](.*)\[\/url\]°Usi""<a href=\"\\1\" title=\"\\1\" target=\"_blank\">\\1</a>"$str);

vorteil?? erst mal den gleichen delimiter und zweitens ein delimiter der selten in texten oder sonstigem vor kommt
ob man hier jetzt einfache oder doppete anführungszeichen verwenden soll sei erst mal dahin gestellt.

yankee

Beginner

Posts: 3

  • Send private message

5

Sunday, February 3rd 2008, 11:38am

Meistens will man jedoch verhindern, dass
Hier klicken!!!!!1111einself
functioniert...

Überseh ich die Möglichkeit Dateien anzuhängen? mhhh.... Dann wird das jetzt ein langer Beitrag.
Ich hab da mal einen parser geschrieben, der dir da vielleicht weiter hilft:
EDIT: Doch unpraktisch... Jetzt findest du den Code auf meinem Server:
http://yankee.homelinux.org/bbcode.zip

This post has been edited 1 times, last edit by "yankee" (Feb 3rd 2008, 11:44am)


Prometheus

Administrator

Posts: 3,278

  • Send private message

6

Wednesday, May 20th 2009, 11:11am

Wie der Zufall es so will hab ich einen ähnlichen Parser auch selbst geschrieben. Allerdings hab ich bei mir (mehr oder weniger) umfangreichere Prozeduren genutzt da ich mit regex irgendwie immer noch nicht so gut klar komme. Allerdings funktioniert der angehängte Parser bei mir gar nicht. Das heißt er funktioniert schon, nur es kommt mitten drin eine Fehlermeldung. Ich poste mal die Stelle vielleicht sieht ja jemand den Fehler.

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  public static function firstPass($text,$randid)
  {
    return nl2br(preg_replace(Array
    (
      '!\\[b\\](.*?)\\[/b\\]!s',
      '!\\[i\\](.*?)\\[/i\\]!s',
      '!\\[u\\](.*?)\\[/u\\]!s',
      '!\\[strong\\](.*?)\\[/strong\\]!s',
      '!\\[google\\]\s*(.*?)\s*\\[/google]!s',
      '!\\[url=([a-zA-Z0-9]*://.*?)\\]\s*(.*?)\s*\\[/url\\]!s',
      '!\\[size=(\\d{1,2})\\](.*?)\\[/size\\]!s',
      "!\\[img\\]\s*(?<!\\[url:$randid\\])(.*?)\s*\\[/img\\]!s",
      '!\s((?:http|ftp)://\\S*)!',
    ),Array
    (
      "[b:$randid]\\1[/b:$randid]",
      "[i:$randid]\\1[/i:$randid]",
      "[u:$randid]\\1[/u:$randid]",
      "[strong:$randid]\\1[/strong:$randid]",
      "[google:$randid]\\1\"[tagend:$randid]\\1[/google:$randid]",
      "[url:$randid]\"\\1\"[tagend:$randid]\\2[/url:$randid]",
      "[size:$randid]\"font-size:\\1pt\"[tagend:$randid]\\2[/size:$randid]",
      "[img:$randid]src=\"\\1\"[stagend:$randid]",
      " [url:$randid]\"\\1\"[tagend:$randid]\\1[/url:$randid]",
    ),htmlentities($text)));
  }


Die Fehlermeldung die kommt lautet

Quoted

Warning: preg_replace() [function.preg-replace]: Unknown modifier '\' in /path/2/website/bbcode.php on line 67

und in dieser Zeile findet man

PHP Source code

1
    ),htmlentities($text)));

Im Quelltext ist an der Stelle also kein Slash. Ich steh da grade total auf dem Schlauch.

Ich würde die Klasse gerne um Smilies usw. erweitern und ein wenig umbauen nur dafür sollte das Grundgerüst erst mal klappen ;)

EDIT: Ich hab den Fehler gefunden aber bin mir nicht sicher wie das zu beheben ist. Problem an der Sache ist, dass ich diese Zeile bzw. den enthalten regex nicht gelesen bekomme.

PHP Source code

1
"!\\[img\\]\s*(?<!\\[url:$randid\\])(.*?)\s*\\[/img\\]!s",

Mitten in dieser Zeile ist der Delimiter ! vorhanden was wohl dazu führt das die darauf folgenden Zeichen als Modifier interpretiert werden.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

wcf.user.socialbookmarks.titel