网站地图    收藏   

主页 > 后端 > wordpress教程 >

wordPress中文截取的函数介绍 - WordPress

来源:自学PHP网    时间:2014-11-28 23:42 作者: 阅读:

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

wordPress中文截取的函数介绍

很多朋友直接使用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(); ?>

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论