2012-06-07 2 views
6

Наш сайт находится на китайском языке, и часть главной страницы показывает список других наименований страниц на максимальной длине того, что работает как называемое «26» (я предполагаю, что это используется для подсчета английского символа, если китайские символы были написаны на английском языке?). Линия мы используем для этого:Усекающий китайский текст

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

Однако, если заголовок действительно долго код укорачивает его, как должно, но последние два китайских иероглифа всегда отображаются в виде, как я предполагаю, он использует английскую версию слов и разделяет китайский характер (каким-то образом). Может быть, я уже думал об этом !?

Например ....

Оригинал:
在国内做一个尊重艺术,能够为青年导演提供平

усеченный вариант:
在国内做一个尊重��

Можете ли вы, возможно, предложить модификацию, чтобы включить нужное количество символов показать, не приводя ?

ответ

6

substr Вместо использования mbstring функции:

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

Если Вы не успешны с этим, то вполне возможно, что PHP не обнаружит строку, закодированную и поэтому, пожалуйста, обеспечить правильную кодировку в 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)); 

См. Также mb_detect_encoding() для получения дополнительной информации.

Надеюсь, это поможет.

+2

Отлично! Этот форум не перестает удивлять меня, спасибо! Код, используемый в финальном выпуске, был следующим: '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

Добро пожаловать! :-) – shadyyx

Смежные вопросы