Nichtssagender Thementitel, aber ... mir fällt da nie etwas Vernünftiges ein.
Jedenfalls geht es um Folgendes Problem:
Ein User gibt einen Text ein, dieser wird durch X Funktionen geschickt blah blah.
Eine dieser Funktionen wandelt nun URLs, E-Mail-Adressen etc. in klickbare Links um. Später wird der Text umgebrochen, damit mir niemand mit endlosen Textzeilen das Forum in die Breite dehnt. Alles, das nicht innerhalb eines HTML-Tags steht, wird umgebrochen. Somit auch die Link-Beschreibungen, z.B. <a href="baaaaaaaaaa">blaa aaaa aaaa</a>.
Wie ihr aber sicher wisst, gibt es manchmal uuunendlich lange URLs, die mit Parametern gespickt sind, die keinen Menschen interessieren. Es macht also wenig Sinn, solch eine URL komplett anzuzeigen.
Darum würde ich sie gerne "kürzen". Also z.B.:
http://www.blah.de?a=laskl&asdf=sdf&...sd&sdfsd=sdfds
wird zu
<a href="http://www.blah.de?a=laskl&asdf=sdf&sdff=adfsd&sdfsd=sdfds">[COLOR=red]http://www.blah.de?a=lask ...[/COLOR]</a>
Momentan sieht die Umwandlung der URLs so aus:
Wie kriege ich es nun hin, den angezeigten Text der URL eines Links zu kürzen? substr innerhalb des RegEx funktioniert nicht (leider, das wäre so schön einfach gewesen
Kann mir jemand helfen?
Gruß,
DasD
P.S.: Mir ist durchaus klar, dass ich anstatt der URL selbst einen beliebigen Text, z.B. "Link" darstellen könnte, z.B. <a href="blah.de">Link</a>, aber das möchte ich wiederum auch nicht, da der Leser eines Postings noch vor dem Klicken eindeutig wissen soll, was ihn ungefähr erwarten könnte.
Jedenfalls geht es um Folgendes Problem:
Ein User gibt einen Text ein, dieser wird durch X Funktionen geschickt blah blah.
Eine dieser Funktionen wandelt nun URLs, E-Mail-Adressen etc. in klickbare Links um. Später wird der Text umgebrochen, damit mir niemand mit endlosen Textzeilen das Forum in die Breite dehnt. Alles, das nicht innerhalb eines HTML-Tags steht, wird umgebrochen. Somit auch die Link-Beschreibungen, z.B. <a href="baaaaaaaaaa">blaa aaaa aaaa</a>.
Wie ihr aber sicher wisst, gibt es manchmal uuunendlich lange URLs, die mit Parametern gespickt sind, die keinen Menschen interessieren. Es macht also wenig Sinn, solch eine URL komplett anzuzeigen.
Darum würde ich sie gerne "kürzen". Also z.B.:
http://www.blah.de?a=laskl&asdf=sdf&...sd&sdfsd=sdfds
wird zu
<a href="http://www.blah.de?a=laskl&asdf=sdf&sdff=adfsd&sdfsd=sdfds">[COLOR=red]http://www.blah.de?a=lask ...[/COLOR]</a>
Momentan sieht die Umwandlung der URLs so aus:
PHP-Code:
$text = eregi_replace("((ht|f)tp://www\.|www\.)([a-z0-9-]+(\.[a-z0-9-]+)*
(\.[a-z]{2,3})((/|\?)[a-z0-9~#%&\\/'_\+=:\?\.-]*)*)",
"http://www.\\3", $text);
$text = eregi_replace("((ht|f)tp://)((([a-z0-9-]+(\.[a-z0-9-]+)*
(\.[a-z]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)
[a-z0-9~#%&'_\+=:\?\.-]*)*)",
"<a class=\"bA\" href=\"\\0\" target=\"\_blank\">\\0</a> ", $text);
Kann mir jemand helfen?
Gruß,
DasD
P.S.: Mir ist durchaus klar, dass ich anstatt der URL selbst einen beliebigen Text, z.B. "Link" darstellen könnte, z.B. <a href="blah.de">Link</a>, aber das möchte ich wiederum auch nicht, da der Leser eines Postings noch vor dem Klicken eindeutig wissen soll, was ihn ungefähr erwarten könnte.
Kommentar