PHP Coder unter euch? (erledigt)
Samstag, 8.6.2013, 12:37 > daMaxHallo Crowd,
ich verwende seit vielen Jahren ein kleines Plugin namens "Shorten Link Text" um die Weiter- und Zurück-Links auf der Artikelseite zu kürzen. Leider hat dieses Plugin ein kleines Problem mit deutschen Umlauten.
Nun ist der eigentliche Plugincode recht übersichtlich und besteht im Endeffekt eigentlich nur aus diesen 2 Methoden:
function filter_shorten_linktext($linkstring,$link) { if (get_option('shorten_linktext_toggle')=='yes') { $characters = (int)get_option('shorten_linktext_characters'); $ellipsis = get_option('shorten_linktext_ellipsis'); preg_match('/(.*?)<\/a>/is',$linkstring,$matches); $displayedTitle = $matches[1]; $newTitle = shorten_with_ellipsis($displayedTitle,$characters,$ellipsis); // Strip all HTML tags: $newTitle = strip_tags($newTitle); return str_replace('>'.$displayedTitle.'<','>'.$newTitle.'<',$linkstring); } else { return $linkstring; } } function shorten_with_ellipsis($inputstring,$characters,$ellipsis='...') { return (strlen($inputstring) >= $characters) ? substr($inputstring,0,($characters-3)).$ellipsis : $inputstring; }
Das komplette Plugin gibt's hier. Hat jemand von euch eine Idee, wie man das Plugin dazu kriegt, Umlaute korrekt anzuzeigen?
Update: Hat sich dank DaDude erledigt:
Da hab ich ja grad zum richtigen Zeitpunkt zufällig vorbeigeguckt
function shorten_with_ellipsis($inputstring,$characters,$ellipsis=’…’) {
return (mb_strlen($inputstring) >= $characters) ?
mb_substr($inputstring,0,($characters-3)).$ellipsis : $inputstring;
}Nimmt man die mb_ string-functions, sollts auch mit MultiByte (UTF-8) chars tun…
Da hab ich ja grad zum richtigen Zeitpunkt zufällig vorbeigeguckt
function shorten_with_ellipsis($inputstring,$characters,$ellipsis='...') {
return (mb_strlen($inputstring) >= $characters) ?
mb_substr($inputstring,0,($characters-3)).$ellipsis : $inputstring;
}
Nimmt man die mb_ string-functions, sollts auch mit MultiByte (UTF-8) chars tun...
Danke
Hört sich nach einer relativ aktuellen PHP-Version an, da ist einiges Porzellan zerscheppert worden mit 5.4.x Dude hats ja schon korrigiert.
Gruß, Frank