Beitrag von Markus (0 Beiträge) am Mittwoch, 6.März.2002, 19:17.
"Forum-Code"
Hallo
Ich habe ein Forum realisiert und möchte nun dort einen "Forum-Code" einführen. Dieser wird benötigt um z.B. Images, Links, E-Mail und sonstiges zu posten. Für ein Bild sieht dann das folgendermassen aus:
Text im Forum: "[IMG]htp://www.xy.xy[/IMG]"
wird dann durch folgende Anweisung zu
<img src="htp://www.xy.xy"> gewandelt:
$inhalt =~ s/\[IMG\]/\<img src=\"/gi;
$inhalt =~ s/\[\/IMG\]/\"\>/gi;
Das Problem liegt nun bei den Links:
ich muss von
[URL]htp://www.xy.xy[/URL]
nach
<a href="htp://www.xy.xy">htp://www.xy.xy</a>
kommen.
eine "Edel-Variante" möchte ich auch noch anbieten, nämlich:
[URL]htp://www.xy.xy[TXT]Link[/URL]
nach
<a href="htp://www.xy.xy">Link</a>
Leider kann ich convert_links nicht anwenden, da dann auch alle Image-Links verändert werden.
Weiss da jemand wie ich das am besten anstelle?
Habe extra htp anstatt http geschriben, damit es nicht umgewandelt wird.
Gruss
Markus
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 6.März.2002, 20:46.
Re: "Forum-Code"
Antworten
Beitrag von Markus (0 Beiträge) am Mittwoch, 6.März.2002, 22:54.
Re: "Forum-Code"
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 7.März.2002, 16:00.
Re: "Forum-Code"
mist, bekomme es nicht hin. Der erste hat auch noch fehler...
Wenn URL in der URL steht, passiert unvorhergesehenes.
Hast du die Idee aus einem anderen Board? vielleicht kann man da in den Quelltext gucken.
Sander
Antworten
Beitrag von Markus (0 Beiträge) am Freitag, 8.März.2002, 03:52.
Re: "Forum-Code"
Ja, hab ich, http://www.webmart.de. Aber wie willst du dort in den Quelltext schauen...?
ok... aber die warscheinlichkeit, das url in der url steht ist klein... nicht? aber es müsste ja schon perfekt sein... :-) ich sehe, eine Herausforderung... :-))
Gruss
Markus
Antworten
Beitrag von Markus (0 Beiträge) am Montag, 11.März.2002, 00:55.
immer noch am tüfteln...
Hi
wollte mal fragen ob du ev. eine Lösung gefunden hast..? Oder sonst jemand?
Gruss
Markus
Antworten
Beitrag von Markus (0 Beiträge) am Dienstag, 12.März.2002, 14:39.
Re: "Forum-Code"
Habs erst jetzt gerafft, das wenn u , r oder l in der url steht, es nicht geht. das erklärt auch das phänomen, wieso es mit mail anscheinend nicht geht. auch dort, [MAIL] --> diese 4 buchsteben dürfen nicht vorkommen. und beim probieren ist immer einer vorgekommen...
Antworten
Beitrag von Olaf Mertgen (263 Beiträge) am Dienstag, 12.März.2002, 15:30. WWW: www.linkex4u.de
Re: "Forum-Code"
Ich hab mal den Code von Sander aufgegriffen und leicht verändert.
Zumindest Teil 1 sollte so funktionieren:
Link:
$inhalt=~s#\[URL\](\S*)\[\/URL\]#<a href=\"$1\">$1<\/a>#gi;
Email:
$inhalt=~s#\[MAIL\](\S*)\[\/MAIL\]#<a href=\"mailto:$1\">$1<\/a>#gi;
Bilder:
$inhalt=~s#\[IMG\](\S*)\[\/IMG\]#<img src=\"$1\">#gi;
Das funktioniert zumindest bei mir im Test, solange keine Leerzeichen in der URL vorkommen, aber das sollte ja eigentlich nicht. Ich hab ein kleines Test-Formular dafür:
http://jom-service.de/baseportal/test/test
Den Rest probier ich mal.
Gruß, Olaf
Antworten
Beitrag von Markus (0 Beiträge) am Dienstag, 12.März.2002, 19:49.
Re: "Forum-Code"
Dankeschön! Wow, sogar mit beipielforumlar! Funktioniert eigentlich prima. Wenn man nun aber z.B. 2 urls hintereinander schreibt, ohne leerzeichen dazwischen, geht es nicht. es muss anscheinend mind. ein leerzeichen zwischen zwei ausdrücken vorhanden sein, damit es funktoniert.
bsp:
[URL]http://www.test.de[/URL][URL]http://www.test.de[/URL]
dieser fall so ist zwar ziemlich unwarschienlich, aber nach der 1. url kann auch ein zeilenumbruch (auch kein leerzeichen dazwischen) kommen, dann gehts auch nicht.
und zudem möchte ich das ganze noch für fett ([B]) und kursiv [I] verwenden. dort müssten dann auch leerzeichen im ausdruck erlaubt sein. das habe ich schon gelöst (hoffe ich... :-)), indem ich vor dem ersetzen von [B][/B] bzw. [I][/I] die Leerzeichen durch z.B. "_sp_" ersetzte. nach dieser operation werden sie wieder zurückgewandelt.
Gruss
Markus
Antworten
Beitrag von Olaf Mertgen (263 Beiträge) am Dienstag, 12.März.2002, 21:21. WWW: www.linkex4u.de
Re: "Forum-Code"
Stimmt, da muss ein Leerzeichen sein, das mit dem Zeilenumbruch muss auch hinzukriegen sein.
Das mit dem _sp_ ist eine sehr gute Idee, so müsste man auch die Luxus-Variante hinkriegen, ich werd das mal testen. Zumindest fallen mir jetzt keine Nebenwirkungen ein, außer jemand verwendet diese Zeichenfolge im Text :-)
Antworten
Beitrag von Markus (0 Beiträge) am Dienstag, 12.März.2002, 21:31.
Re: "Forum-Code"
Meinst du es ginge irgendenwie, ohne nötiges Leerzeichen?
man kann natürlich auch _ichglaubekaumdassjemanddiesentextimbeitragverwendet_ nehmen :-)) _sp_ sollte reichen. :-)
Danke für deine Mühe!
Gruss
Markus
Antworten
Beitrag von Olaf Mertgen (263 Beiträge) am Dienstag, 12.März.2002, 21:54. WWW: www.linkex4u.de
Re: "Forum-Code"
So, hier eine verbesserte Version:
$inhalt=~s#\[\/URL\]\[URL\]#\[\/URL\] \[URL\]#gi;
$inhalt=~s#\[URL\](\S+)\[\/URL\]#<a href=\"$1\">$1<\/a>#gi;
$inhalt=~s#\[MAIL\](\S+)\[\/MAIL\]#<a href=\"mailto:$1\">$1<\/a>#gi;
$inhalt=~s#\[IMG\](\S+)\[\/IMG\]#<img src=\"$1\">#gi;
$inhalt=~s#\[B\]#<b>#gi;
$inhalt=~s#\[\/B\]#</b>#gi;
$inhalt=~s#\[I\]#<i>#gi;
$inhalt=~s#\[\/I\]#</i>#gi;
$inhalt = convert_br($inhalt);
Da klappt das auch ohne Leerzeichen zwischen den URL, dann wird nämlich eins zwischengeschoben. Nur die URL selbst darf kein Leerzeichen haben.
Beim Fettdruck und Kursiv darfst du doch nicht mit Leerzeichen ersetzen arbeiten, denn das klappt dann nur bei einem Fettdruck. Mit der obigen Lösung sollte es aber gehen.
Zeilenumbruch klappt auch, du darfst nur das convert_br erst nach dem Ersetzen durchführen, sonst wird aus dem Zeilenumbruch ein <br> und das gilt nicht als WhiteSpace (\S).
Antworten
Beitrag von Markus (0 Beiträge) am Mittwoch, 13.März.2002, 01:42.
Re: "Forum-Code"
WOW, wunderbar, vielen dank!! Ich würde sagen es klappt... hab mal so ein paar fälle durchgespielt, da hats keine probleme mehr gegeben!
Ist voll genial das du dir die zeit dafür genommen hast!
jetzt fehlt nur noch die
von
"[URL]htp://www.xy.xy[TXT]Link[/URL]"
nach
"<a href="htp://www.xy.xy">Link</a>"
-Variante...
aber wenn das nicht gehen würden, Schicksal... aber ich denke es müsste schon möglich sein...
Gruss
Markus
Antworten
Beitrag von Olaf Mertgen (263 Beiträge) am Mittwoch, 13.März.2002, 13:03. WWW: www.shareware4u.de
Re: "Forum-Code"
So funktioniert das, solange im Text für Link keine [-Klammer auftaucht, denn das wird als das Ende des Texts interpretiert.
Wichtig ist jetzt die Reihenfolge der Ersetzungen, d.h. die Luxus-Variante muss vor der Standard-Version ersetzt werden.
# Leerzeichen zwischen URLs schieben
$inhalt=~s#\[\/URL\]\[URL\]#\[\/URL\] \[URL\]#gi;
# URL (Luxus / Normal)
$inhalt=~s#\[URL\](\S+)\[TXT\]([^\[]+)\[\/URL\]#<a href=\"$1\">$2<\/a>#gi;
$inhalt=~s#\[URL\](\S+)\[\/URL\]#<a href=\"$1\">$1<\/a>#gi;
# MAIL (Luxus / Normal)
$inhalt=~s#\[MAIL\](\S+)\[TXT\]([^\[]+)\[\/MAIL\]#<a href=\"mailto:$1\">$2<\/a>#gi;
$inhalt=~s#\[MAIL\](\S+)\[\/MAIL\]#<a href=\"mailto:$1\">$1<\/a>#gi;
# BILDER
$inhalt=~s#\[IMG\](\S+)\[\/IMG\]#<img src=\"$1\">#gi;
# FETTDRUCK
$inhalt=~s#\[B\]#<b>#gi;
$inhalt=~s#\[\/B\]#</b>#gi;
# KURSIV
$inhalt=~s#\[I\]#<i>#gi;
$inhalt=~s#\[\/I\]#</i>#gi;
# ZEILENUMBRUCH
$inhalt = convert_br($inhalt);
Gruß, Olaf
Antworten
Beitrag von Markus (0 Beiträge) am Donnerstag, 14.März.2002, 00:22.
Re: "Forum-Code"
So, jetzt ist perfekt! Dankeschön!!!!!!!!!
Gruss
Markus
Antworten