找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1426|回复: 0

[Wordpress] wordpress文章摘要内容截取出现乱码的解决方法

[复制链接]
发表于 2011-3-2 09:40:24 | 显示全部楼层 |阅读模式
当wordpress文章摘要中出现乱码是,可以尝试用下面两种方法来解决,第1种需要服务器打开mb_string extension,如果这个没有打开就用第2种。

1. mb_strimwidth文字截断需要服务器打开mb_string extension
  1. <?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 200,""); ?>
复制代码
2. cut_str文字截断需要将一下代码放加入到function.php 文件
  1. function cut_str($sourcestr,$cutlength)
  2. {
  3. $returnstr='';
  4. $i=0;
  5. $n=0;
  6. $str_length=strlen($sourcestr);//字符串的字节数
  7. while (($n<$cutlength) and ($i<=$str_length))
  8. {
  9. $temp_str=substr($sourcestr,$i,1);
  10. $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
  11. if ($ascnum>=224)    //如果ASCII位高与224,
  12. {
  13. $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
  14. $i=$i+3;            //实际Byte计为3
  15. $n++;            //字串长度计1
  16. }
  17. elseif ($ascnum>=192) //如果ASCII位高与192,
  18. {
  19. $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
  20. $i=$i+2;            //实际Byte计为2
  21. $n++;            //字串长度计1
  22. }
  23. elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母,
  24. {
  25. $returnstr=$returnstr.substr($sourcestr,$i,1);
  26. $i=$i+1;            //实际的Byte数仍计1个
  27. $n++;            //但考虑整体美观,大写字母计成一个高位字符
  28. }
  29. else                //其他情况下,包括小写字母和半角标点符号,
  30. {
  31. $returnstr=$returnstr.substr($sourcestr,$i,1);
  32. $i=$i+1;            //实际的Byte数计1个
  33. $n=$n+0.5;        //小写字母和半角标点等与半个高位字符宽…
  34. }
  35. }
  36. if ($str_length>$cutlength){
  37. $returnstr = $returnstr . "…";//超过长度时在尾处加上省略号
  38. }
  39. return $returnstr;
  40. }
复制代码
调用方法
  1. <?php echo cut_str(strip_tags(apply_filters('the_content', $post->post_content)),200,""); ?>
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|王牌互联

GMT+8, 2024-11-23 01:36 , Processed in 0.022764 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表