(php)ubb code (er)setzen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/phpubb_code_ersetzen_72871/page_1 - zur Vollversion wechseln!


sick schrieb am 27.03.2003 um 22:04

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?


atrox schrieb am 27.03.2003 um 23:37

poste deine lösung für die nachwelt :)


sick schrieb am 27.03.2003 um 23:48

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 schrieb am 28.03.2003 um 01:59

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 schrieb am 29.03.2003 um 00:22

hmm, thx aber genau diese "speziellen regeln für kombinierte ubb-konstrukte" bring i ned zam ...:)


watchout schrieb am 29.03.2003 um 01:32

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 schrieb am 29.03.2003 um 13:03

najo, i hab
[ URL]www.blabla.com[ IMG]www.bla.at/1.gif[ /IMG][ /URL]
des is ja das problem....:confused:


watchout schrieb am 29.03.2003 um 13:29

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 schrieb am 29.03.2003 um 13:41

hmm, ok. danke mal derweil

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


Sticker schrieb am 29.03.2003 um 17:50

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?


watchout schrieb am 30.03.2003 um 10:05

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 schrieb am 30.03.2003 um 14:06

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);


sick schrieb am 01.04.2003 um 22:38

ok, nochmal thx @ all

Sticker, deine Lösung funkt. danke




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025