PHP Coder unter euch? (erledigt)

Juni 8th, 2013, 12:37 > da/Y\ax

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…


3 Meinungen zu “PHP Coder unter euch? (erledigt)”

  1. DidiDaDude meinte:

    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…

  2. da]v[ax meinte:

    Danke :-*

  3. Earlchaos meinte:

    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

Antworten

Dein Kommentar


Halte Dich bitte an die Spielregeln. Welche Emoticons du verwenden kannst, steht hier.
 
 Wer HTML kann, ist klar im Vorteil. Diese Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
 
 Bei der Menge an Spam-Kommentaren passiert es hin und wieder, dass ein Kommentar vom Spamfilter gefressen wird. Bitte sei mir nicht böse aber ich habe weder Zeit noch Lust, solch verloren gegangenen Kommentaren hinterher zu forschen. Wenn das öfters passiert, schreib' mir 'ne Mail damit ich dich whitelisten kann.

Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken. Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da Politiker im Regelfall von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Politikern schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.

Mehr Informationen unter www.politiker-stopp.de.