包含中英文的字符串截取算法,与php系统字符串截取函数

来源:互联网 发布:决战武林神翼进阶数据 编辑:程序博客网 时间:2024/05/07 03:47

刚创建博客,希望朋友们多多支持,交个朋友,感激不尽大笑

》》》》》以php为例,个人编写的中英文截取算法。

  functionmsubstr($str,$start,$len){           //$str指的是字符串,$start指的是字符串的起始位置,$len指的是长度。

   $strlen=$start+$len;                           //用$strlen存储字符串的总长度(从字符串的起始位置到字符串的总长度)

   for($i=0;$i<$strlen;$i++){                       //通过for循环语句

   if(ord(substr($str,$i,1))>0xa0){               //如果字符串中首个字节的ASCII序数值大于0xa0,则表示为汉字

       $tmpstr.=substr($str,$i,2);                //每次取出两位字符赋给变量$tmpstr,即等于一个汉字

       $i++;                                    //变量自加1

    }else{                                           //如果不是汉字,则每次取出一位字符赋给变量$tmpstr

     $tmpstr.=substr($str,$i,1);}

    }

        return$tmpstr;                    //输出字符串

 

    }

 

<strong>

</strong>

 

 

》》》》》php系统提供的的不同编码的字符串截取系统函数

一、中英文截取:mb_substr()

mb_substr( $str, $start, $length, $encoding )

$str,需要截断的字符串
$start,截断开始处,起始处为0
$length,要截取的字数
$encoding,网页编码,如utf-8,GB2312,GBK

代码如下:

<?php

 header("Content-Type: text/html;charset=utf-8");

$str='csdn我的博客,喜欢分享与学习知识';

echo mb_substr($str,0,5,'utf-8');//截取头5个字,假定此代码所在php文件的编码为utf-8

?>

结果显示:csdn我



二、获取中英文长度:mb_strlen()

mb_strlen( $str, $encoding )

$str,要计算长度的字符串
$encoding,网页编码,如utf-8,GB2312,GBK

代码如下:

<?php

$str='csdn我的博客,喜欢分享与学习知识';

echo mb_strlen($str,'utf-8');//假定此代码所在php文件的编码为utf-8

?>



结果显示:18




0 0
原创粉丝点击