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.
Antworten
Christian_W
Ehemaliges Teammitglied
Beiträge: 5703
Registriert: 26.02.2004 00:09

Lange Links automatisch kürzen

Beitrag von Christian_W »

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.
Antworten

Zurück zu „phpBB 2.0: Snippets“