"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

(php)ubb code (er)setzen

sick 27.03.2003 - 22:04 715 12
Posts

sick

I'm Rick James, bitch!
Avatar
Registered: Oct 2000
Location: Linz
Posts: 523
grias eich.

hab da so meine kleinen schwierigkeiten, wenn i an ubb code der in da datenbank steht wieder zurückwandeln will...
mit den url's is jo kein problem.
z.b. so

Code: PHP
$daten[message] = preg_replace("/\[url](.*)\[\/url\]/siU","<a href=\"\\1\" target='_blank'>\\1</a>",$daten[message])

aber wie kann i jetzt bei der eingabe ein bild+url einfügen..?
d.h. ein bild mit [img] und wenn man draufklickt liegt ein [url] dahinter....

any ideas?
Bearbeitet von atrox am 02.04.2003, 02:12 (marked solved)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
poste deine lösung für die nachwelt :)

sick

I'm Rick James, bitch!
Avatar
Registered: Oct 2000
Location: Linz
Posts: 523
hmm, leider zu bald gefreut :mad:
geht doch ned....

soll so in der art sein, wie hier im forum der [thn] code füa die thumbnails....
wie bring i da de url hinein bzw. wieder heraus...?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
weil es unnötig kompliziert erscheint alles mit einer regex-rule abzudecken, würdre ich vorschlagen, du führst zuerst die spezielleren, und dann die allgemeineren ersetzungen durch. also zb zuerst (falls notwendig) spezielle regeln für kombinierte ubb-konstrukte, und dann für die allgemeineren einfachen ubb codes. (außer natürlich, die verschachtelung ist ident mit der von html, in dem fall kommt man wohl in den meisten fällen nur mit wohl sortierten allemeinen umsetzungsregeln aus).

sick

I'm Rick James, bitch!
Avatar
Registered: Oct 2000
Location: Linz
Posts: 523
hmm, thx aber genau diese "speziellen regeln für kombinierte ubb-konstrukte" bring i ned zam ...:)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von sick
hmm, thx aber genau diese "speziellen regeln für kombinierte ubb-konstrukte" bring i ned zam ...:)
einfach :)

nimm an, du hast:
[ URL=www.hotpants.com][ IMG]www.hotpants.com/blue.jpg[/ IMG][/ URL]

und du wendest zuerst die img-regexp an, dann kommt mal das raus:
[ URL=www.hotpants.com]<img src="www.hotpants.com/blue.jpg">[/ URL]

wenn du jetzt die url-regexp anwendest kommt
<a href="www.hotpants.com"><img src="www.hotpants.com/blue.jpg"></a>
raus

"problematisch" wirds, wenn du auch
[ URL][ IMG]www.hotpants.com/blue.jpg[/ IMG][/ URL]
parsen willst, weil dann wird dir imho nix anderes übrigbleiben, als eine eigene regexp zu machen ;)
zb wäre das für obige ca...
"/\[URL\]\[IMG\]([^\[\/IMG\]\[\/URL\]])\[\/IMG\]\[\/URL\]/"
verzeih, wenn ich mich da jetzt irgendwo bei den klammern vertan hab :rolleyes:

ps: links funken _nicht_ :D

sick

I'm Rick James, bitch!
Avatar
Registered: Oct 2000
Location: Linz
Posts: 523
najo, i hab
[ URL]www.blabla.com[ IMG]www.bla.at/1.gif[ /IMG][ /URL]
des is ja das problem....:confused:

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von sick
najo, i hab
[ URL]www.blabla.com[ IMG]www.bla.at/1.gif[ /IMG][ /URL]
des is ja das problem....:confused:
hmm, so funkts ja netamal bei html... :rolleyes: obwohl es natürlich möglich is:
(ungefähr so)
"/\[URL\]([^[\/IMG\]]*)\[IMG\]([^\[\/IMG\]]*)\[\/IMG\]\[\/URL\]/"

für etwaige fehler übernehm ich keine verantwortung :p

sick

I'm Rick James, bitch!
Avatar
Registered: Oct 2000
Location: Linz
Posts: 523
hmm, ok. danke mal derweil

werd des ganze nochmal "überdenken" ;)
is wahrscheinlich einfacher, wenn ich's vorher schon
anders eingebe...

Sticker

Big d00d
Avatar
Registered: Mar 2003
Location: Wien
Posts: 177
EDIT:

Wenn URL= vorhanden ist:
Code: PHP
$x="/\[URL=([\"']?)([^\"']*)([\"']?)\](.*)\[/url\]/siU";
$y="<a href=\\2 target=_blank>\\4</a>";
$text=preg_replace($x, $y, $text);

Wenn nur URL vorhanden ist:
Code: PHP
$x="/\[url\]([^\"]*)\[\/url\]/siU";
$y="<a href=\\1 target=_blank>\\1</a>";
$text=preg_replace($x, $y, $text);

Du musst nur die [ IMG] Tags danach ersetzen.

EDIT2:
Kann es sein das das Forum aus: \ \ nur \ macht?
Bearbeitet von Sticker am 29.03.2003, 20:56

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Sticker
EDIT:

Wenn URL= vorhanden ist:
Code:
$x="/\[URL=([\"']?)([^\"']*)([\"']?)\](.*)\[/url\]/siU";
$y="<a href=\\2 target=_blank>\\4</a>";
$text=preg_replace($x, $y, $text);

Wenn nur URL vorhanden ist:
Code:
$x="/\[url\]([^\"]*)\[\/url\]/siU";
$y="<a href=\\1 target=_blank>\\1</a>";
$text=preg_replace($x, $y, $text);

Du musst nur die [ IMG] Tags danach ersetzen.

EDIT2:
Kann es sein das das Forum aus: \ \ nur \ macht?
1. hilft das bei seinem anwendungsfall ([ URL]www.blabla.com[ IMG]www.bla.at/1.gif[ /IMG][ /URL]) nicht
2. fehlen ca 30 escapes
3. ok, das mit den escapes hab ich grad bemerkt, liegt wohl am [ PHP] - tag

Sticker

Big d00d
Avatar
Registered: Mar 2003
Location: Wien
Posts: 177
Das mit den escapes liegt am PHP Tag.

$x="/\[URL]([^\"]*)\[IMG\]([^\"]*)\[\/img\]\[\/URL\]/siU";
$y="<a href=\\1 target=_blank>\\2</a>";
$text=preg_replace($x, $y, $text);
Bearbeitet von Sticker am 30.03.2003, 14:40

sick

I'm Rick James, bitch!
Avatar
Registered: Oct 2000
Location: Linz
Posts: 523
ok, nochmal thx @ all

Sticker, deine Lösung funkt. danke
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz