i漂泊

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4482|回复: 1

PHP汉字截断方法

[复制链接]
TA的礼物信息
  • 收到:0
  • 送出:2
发表于 2013-12-6 10:47:05 | 显示全部楼层 |阅读模式
  1. <?php

  2. /*
  3. * CopyRight  : [Discuz!] (C)2001-2099 HaoTeam Inc.
  4. * Document   : test.php
  5. * Created on : 2013-11-9,21:03:53
  6. * Author     : 51漂泊(51piaobo) www.51piaobo.com $
  7. * Description: This is NOT a freeware, use is subject to license terms.
  8. *              这即使是一个免费软件,使用时也请遵守许可证条款,得到当时人书面许可。
  9. *              未经书面许可,不得翻版,翻版必究;版权归属51漂泊;
  10. */



  11. $str = "这a个字符好长呀,^_^";
  12. $Short_Str = showShort($str, 2); //截取前面4个汉字,结果为:这个字符...  
  13. Echo "$Short_Str";

  14. Function csubstr($str, $start, $len) {
  15.     $strlen = strlen($str);
  16.     $clen = 0;
  17.     for ($i = 0; $i < $strlen; $i++, $clen++) {
  18.         if ($clen >= $start + $len)
  19.             break;
  20.         if (ord(substr($str, $i, 1)) > 0xa0) {
  21.             if ($clen >= $start)
  22.                 $tmpstr.=substr($str, $i, 2);
  23.             $i++;
  24.         }
  25.         else {
  26.             if ($clen >= $start)
  27.                 $tmpstr.=substr($str, $i, 1);
  28.         }
  29.     }

  30.     return $tmpstr;
  31. }

  32. Function showShort($str, $len) {
  33.     $tempstr = csubstr($str, 0, $len);
  34.     if ($str <> $tempstr)
  35.         $tempstr .= "...";  //要以什么结尾,修改这里就可以.  

  36.     return $tempstr;
  37. }

  38. ?>
复制代码
回复

使用道具 举报

TA的礼物信息
  • 收到:0
  • 送出:2
 楼主| 发表于 2013-12-6 10:48:58 | 显示全部楼层
  1. <?php

  2. /*
  3. * CopyRight  : [Discuz!] (C)2001-2099 HaoTeam Inc.
  4. * Document   : test.php
  5. * Created on : 2013-11-9,21:03:53
  6. * Author     : 51漂泊(51piaobo) www.51piaobo.com $
  7. * Description: This is NOT a freeware, use is subject to license terms.
  8. *              这即使是一个免费软件,使用时也请遵守许可证条款,得到当时人书面许可。
  9. *              未经书面许可,不得翻版,翻版必究;版权归属51漂泊;
  10. */



  11. $str = "这a个字符好长呀,^_^";
  12. $Short_Str = msubstr($str,0, 4); //截取前面4个汉字,结果为:这个字符...  
  13. Echo "$Short_Str";

  14. function  msubstr($str,$start,$len)  {   
  15.        $strlen=$start+$len;   
  16.        for($i=0;$i<$strlen;$i++)  {   
  17.                if(ord(substr($str,$i,1))>0xa0)  {   
  18.                        $tmpstr.=substr($str,$i,2);   
  19.                        $i++;   
  20.                }  else   
  21.                        $tmpstr.=substr($str,$i,1);   
  22.        }   
  23.        return  $tmpstr;   
  24. }  

  25. ?>
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|IPiaoBo Inc. ( 渝ICP备17002826号 )

GMT+8, 2025-5-8 01:57 , Processed in 0.079912 second(s), 49 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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