注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学以致用

盛年不再来,一日难再晨。及时宜自勉,岁月不待人。

 
 
 

日志

 
 

【转载】php 截取字符串  

2012-09-01 00:58:41|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自yaoqianglilan《php 截取字符串》

php截取字符串中文容易出现乱码 下面的方法可以解决此问题

     /* 函数的定义和原来相同,只是在函数内部功能上做了一些调整,用来截取中文 */
    function php_modifier_truncate($string, $length = 80, $etc = '...',$break_words = false) {
        if ($length == 0)                      //如果指定的截取字符串长度为 0
            return '';                        //直接返回空字符串
        if (strlen($string) > $length) {          //如果实际字符串的长度大于指定截取的长度
            $length -= strlen($etc);            //将指定截取的长度减去省略符号字符串的长度
            if (!$break_words)                //如果需要匹配单词边界做下面的处理
                $string = preg_replace('/s+?(S+)?$/', '', SubstrGB($string, 0, $length+1)); 
            return SubstrGB($string, 0, $length).$etc;     //返回截取后的字符串
        } else                                       //如果指定截取的长度小于原字符串的长度
            return $string;                            //直接返回原字符串
    }
    /* 该函数作为上面函数的子功能,$str字符串,$start 开始的位置,$len 截取长度  */
    function SubstrGB($str,$start,$len) {
        if( strlen($str) > $len) {                         //如果字符串的长度大于截取长度
            $strlen=$strart+$len;                      //实际截取的长度是开始的位置加上截取长度
            for($i=0;$i<$strlen;$i++) {                 //遍历在截取长度围内的每个字符
                if(ord(substr($str,$i,1))>0xa0){         //如果 ASCII的值是从汉字的开始
                    $tmpstr.=substr($str,$i,2);         //两个字符即一个汉字在一起
                    $i++;                         //需要跳过一次遍历
                } else {                           //如果 ASCII 的值是双字节的字
                    $tmpstr.=substr($str,$i,1);        ·//次取一个字符的子字符串
                }
 }
            return $tmpstr;                          //返回处理后的字符串
        } else {                                     //如果字符串的长度小于截取长度
            return $str;                             //不需要处理直接返回
        } 
    } 

  评论这张
 
阅读(222)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017