2012-06-07 15 views
6

Unsere Website ist in Chinesisch und ein Teil der Hauptseite zeigt eine Liste von anderen Seitentiteln mit einer maximalen Länge von dem, was als '26' funktioniert (ich nehme an, dass die englische Zeichenanzahl verwendet wird, wenn die chinesischen Schriftzeichen wurden mit Englisch geschrieben?). Die Linie, die wir für diesen Einsatz ist:Abschneiden chinesischen Text

<?php echo anchor('projects/'.$rs->url_project_title.'/'.$rs->project_id,substr(ucfirst($rs->project_title),0,26),'style="text-decoration:none;"'); ?>

Wenn jedoch der Titel in der Tat zu lang ist, kürzt der Code es, wie es sollte, aber die letzten beiden chinesischen Schriftzeichen werden immer angezeigt, wie wie ich vermute, Es benutzt die englische Version der Wörter und teilt ein chinesisches Schriftzeichen (irgendwie) auf. Vielleicht bin ich über das denken !?

Zum Beispiel ....

Original:
在国内做一个尊重艺术,能够为青年导演提供平

abgeschnittene Version:
在国内做一个尊重��

Können Sie vielleicht eine Änderung vorschlagen, um die gewünschte Anzahl von Zeichen, ohne was zu zeigen, zu ermöglichen, die 's?

Antwort

6

Statt substr Verwendung mbstring Funktionen:

echo anchor(
    'projects/' . $rs->url_project_title . '/' . $rs->project_id, 
    mb_substr(ucfirst($rs->project_title), 0, 26), 
    'style="text-decoration:none;"' 
); 

Wenn Sie mit dieser nicht erfolgreich sind, dann ist es möglich, dass PHP nicht die String-Codierung erkannt hat und deshalb geben Sie bitte die richtige Codierung der mb_substr():

// PHP uses internal encoding mb_internal_encoding() 
echo mb_substr($string, 0, 26); 
// you specify the encoding - in the case you know in which encoding the input comes 
echo mb_substr($string, 0, 26, 'UTF-8'); 
// PHP tries to detect the encoding 
echo mb_substr($string, 0, 26, mb_detect_encoding($string)); 

Siehe auch mb_detect_encoding() für weitere Informationen.

Hoffe, das hilft.

+2

Perfekt! Dieses Forum erstaunt mich immer wieder, vielen Dank! Der in der endgültigen Ausgabe verwendete Code war: echo anchor ( 'projects /'. $ Rs-> url_project_title. '/'. $ Rs-> project_id, mb_substr (ucfirst ($ rs-> project_title), 0, 26 , 'UTF-8'), 'style = "text-decoration: none;' ' );' – JoeW

+0

Gern geschehen! :-) – shadyyx

Verwandte Themen