当前位置:首页 > CMS教程 > WordPress > 列表

wordPress中文截取的函数介绍

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-18 21:32:25 浏览: 评论:0 

很多朋友直接使用php substr函数截取中文是会出现乱码,下面我先来给各位总结中文字符截取的函数,然后以wordpress截取中文标题为例给大家介绍实例应用.

中文截取函数,代码如下:

  1. function utf8_trim($str)  
  2. $len = strlen($str); 
  3. for ($i=strlen($str)-1; $i>=0; $i-=1){ 
  4. $hex .= ‘ ‘.ord($str[$i]); 
  5. $ch = ord($str[$i]); 
  6. if (($ch & 128)==0) return(substr($str,0,$i)); 
  7. if (($ch & 192)==192) return(substr($str,0,$i)); 
  8. return($str.$hex); 
  9. function mul_excerpt ($excerpt,$excerpt_length) { 
  10. $myexcerpt = substr($excerpt,0,$excerpt_length); 
  11. return utf8_trim($myexcerpt) . ‘… ‘; 

或者这样也可以

  1. //自动截断不乱码 
  2. // jieduan luanma 
  3. ///////////////// 
  4. function Limit_Char($max_char = 200, $more_text = '...'$more_link_text = ''$limit_type = 'content') { 
  5.     if ($limit_type == 'title') { $limiter = get_the_title(); } 
  6.     else { $limiter = get_the_content(); } 
  7.     $limiter = apply_filters('the_content'$limiter); 
  8.     $limiter = strip_tags(str_replace(']]>'']]>'$limiter)); 
  9.      if (strlen($limiter) > $max_char) { 
  10.         $limiter = substr($limiter, 0, $max_char+1); 
  11.         $limiter = utf8_conver($limiter); 
  12.         echo $limiter
  13.         echo $more_text
  14.         if ($more_link_text != '') { 
  15.             echo ' '.$more_link_text.''
  16.         } 
  17.     } else { 
  18.         echo $limiter
  19.     } 
  20. function utf8_conver($str) { 
  21.         $len = strlen($str); 
  22.         for ($i=strlen($str)-1; $i>=0; $i-=1){ 
  23.                 $hex .= ' '.ord($str[$i]); 
  24.                 $ch = ord($str[$i]); 
  25.         if (($ch & 128)==0) return(substr($str,0,$i)); 
  26.                 if (($ch & 192)==192) return(substr($str,0,$i)); 
  27.         } 
  28.         return($str.$hex); 

截取中文标题,代码如下:

echo '</p><p>'. mb_substr(get_the_title(),0,18,"utf8")."..." .'</p></li>';

这样会出现乱码的,我在functions.php加入上面的中文截取代码,然后在想要截取标题的位置,添加get_short_title(),目的就达到,详细代码如下:

  1. echo '<li><a href="' . get_permalink() . '">'
  2. get_short_title(18); 
  3. echo '</a><data>'. get_the_time('n月j日') .'</data></li>'

当然,其他地方这样调用也可以,代码如下:<?php get_short_title(); ?>

Tags: wordPress 中文截取 函数

分享到: