Lange Links automatisch kürzen

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Bei Fragen oder Problemen benutze bitte das Forum phpBB 2.0: Mod Support.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Christian_W
Ehemaliger
Beiträge: 5703
Registriert: 26.02.2004 00:09
Wohnort: Bermersbach
Kontaktdaten:

Lange Links automatisch kürzen

Beitragvon Christian_W » 15.01.2007 14:01

Mit dieser Änderung werden lange Links automatisch verkürzt dargestellt.

Code: Alles auswählen

----- öffne includes/bbcode.php

----- finde -----
   $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);

----- füge danach ein ----
   // Remove long url
   $ret = preg_replace("/<a href=(.*?)>((http:\/\/|https:\/\/|ftp:\/\/|www\.).*?)<\/a>/ie", "(strlen(\"\\2\") > 65 && !eregi(\"<\", \"\\2\") ) ? '<a href='.stripslashes(\"\\1\").'>'.substr(\"\\2\", 0, 35) . '....' . substr(\"\\2\", -25).'</a>' : '<a href='.stripslashes(\"\\1\").'>'.\"\\2\".'</a>'", $ret);


Erklärung:
$ret = preg_replace("/<a href=(.*?)>((http:\/\/|https:\/\/|ftp:\/\/|www\.).*?)<\/a>/ie", "(strlen(\"\\2\") > 65 && !eregi(\"<\", \"\\2\") ) ? '<a href='.stripslashes(\"\\1\").'>'.substr(\"\\2\", 0, 35) . '....' . substr(\"\\2\", -25).'</a>' : '<a href='.stripslashes(\"\\1\").'>'.\"\\2\".'</a>'", $ret);
Es wird nach den (bereits in html-code umgewandelten) Links gesucht und geprüft ob der Linktext (also das zwischen <a> und </a>) eine url ist und ob er länger als 65 Zeichen ist. Dann werden vom Anfang 35 Zeichen genommen, daran werden 4 Punkte gehängt (....). Hinten werden dann noch die letzten -25 Zeichen drangehängt und fertig ist der kurze Link. ;)
Die letzten Zeichen deshalb, damit man erkennen kann was man da eigentlich anklickt (also z.B. html, zip, exe, usw.)
Durch verändern der Werte kann man das Verhalten wie gewünscht anpassen.

Zurück zu „phpBB 2.0: Snippets“