首先 - 我是一個PHP新手。我試圖使用mb_substr來限制wordpress主題上的標題長度,但是當標題中有某些符號(如「'」(apostraphe)或「 - 」(破折號))時,它會返回更少的字符。UTF-8十六進制計爲單個字符與mb_substr?
這是我的工作代碼,限制了人物的共有60個(忽略非省略號):我wan't這回截斷至60標題
<?php
$short_title = the_title('','',false);
$short_title_2 = mb_substr($short_title,0,60, 'utf-8');?>
<h3>
<a href="<?php the_permalink(); ?>">
<?php echo $short_title_2; if($short_title_2!=$short_title) { echo "..."; }; ?>
</a>
</h3>
所以基本上字符,但是當我有任何形式的標點符號或其他特殊字符時,它將它們視爲一個單獨的6個字符(必須計算它們的Unicode值或其他值),這意味着它實際上只返回54個字符。
這裏是和例如標題與破折號:
Competition - Win Tees from Listen To Your Eyes Clothing Now Ended
的代碼應該返回:
<h3>Competition - Win Tees from Listen To Your Eyes Clothing Now…</h3>
什麼實際回報:
<h3>Competition – Win Tees from Listen To Your Eyes Clothi…</h3>
數據庫字符集設置爲utf8_general_ci (包括標題表)
有什麼辦法可以解決這個問題嗎?
您已經檢查了儀表板一樣被‐,而不是東西 - 你是縮短字符串中? – CodeReaper