PHP Coder unter euch? (erledigt)

Samstag, 8.6.2013, 12:37 > daMax

Hallo 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.
SLT-wrong-encoding

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…