自己编写的中文字符串的截取函数
<?php
/*
在start不等于0的情况下,一定要从头开始逐个字符检查是否是中文
*/
function cn_substr($str,$start,$len,$encoding)
{
$strstr="";
if(($start==0)&&($len > strlen($str)))
{
$strstr=$str;
}
else
{
//如果不是从0开始,就要从字符串的头部逐个字符判定是否是中文
if($start!=0)
{
$k=$start;
for($j=0;$j<$k;$j++)
{
if(ord(substr($str,$k,1))>127)
{
if($encoding=='utf8')
{
$start+=2;
$j+=2;
$k+=2;
}
else if($encoding=='gb2312')
{
$start+=1;
$j+=1;
$k+=1;
}
}
}
}
//用于字符串的截取
for($i=$start;$i<$start+$len;$i++)
{
$sub=substr($str,$i,1);
if(ord($sub)>127)
{
if($encoding=='utf8')
{
$strstr.=substr($str,$i,3);
$len+=2;
$i+=2;
}
else if($encoding=='gb2312')
{
$strstr.=substr($str,$i,2);
$len+=1;
$i+=1;
}
}else
{
$strstr.=substr($str,$i,1);
}
}//for
}//if
return $strstr;
}//func
function get_time()
{
list($msec,$sec)=explode(" ",microtime());
return (float)$sec+(float)$msec;
}
$str="我是最abcde";
$time1=get_time();
var_dump(mb_substr($str,2,3,'utf8'));
$time2=get_time();
var_dump(cn_substr($str,2,3,'utf8'));
$time3=get_time();
echo "<br/>*********************<br/>";
echo 'time2-time1:'.($time2-$time1);echo "<br/>";
echo 'time3-time2:'.($time3-$time2);echo "<br/>";
?>
自己编写的中文字符串的截取函数相关推荐
- python 中文字符串截取,Python实现针对含中文字符串的截取功能示例
本文实例讲述了Python实现针对含中文字符串的截取功能.分享给大家供大家参考,具体如下: 对于含多字节的字符串,进行截断的时候,要判断截断处是几字节字符,不能将多字节从中分割,避免截断后乱码 下面给 ...
- 编写一个用于字符串比较的函数
编写一个用于字符串比较的函数mystrcmp. 程序的运行结果如下所示: 输入: word work 输出: word<work 这是一个神奇的题--题目显示不完全-- 然后--按位比较ASCI ...
- php支持中文字符串分割的函数
<?php/*** str_split不支持中文,利用mb_xx函数实现个* 2个用哪个都成* */ $str = "月日上午湖北荆州安良百货商场内一名岁的女子被搅入手扶电梯身亡据广西 ...
- php返回第一个字符串的码点_PHP 字符串编码截取函数
一个效率更高的全半角字符串截取函数 [原创,转载请注明:[url]http://wfyang.blog.51cto.com[/url]]现在流传的那几个字符串截取函数,一般都是对字符串进行循环判断,如 ...
- 小生谈字符串的截取函数SubString()--仅限csharp语言
也许做字符处理的每一个人,都会用到这个字符串的截取功能,我在这里谈论的是在.NET C#里的字符串截取函数SubString(),不是别的语言中的,请各位看的时候麻烦注意一下. 它主要是String类 ...
- Django使用Ajax传递中文字符串给视图函数显示乱码的解决方法
网上看到许多Ajax传递中文字符的解决方法,但都是比较高级的方法.我看不懂啊,觉得好复杂.翻了好多前辈的网页,找到一个解决方案.我这里用比较直白的语言解答一下,让像我这样的小白不必看到别人的解答方法就 ...
- php 汉字分割,php支持中文字符串分割的函数
str_split不支持中文,利用mb_xx函数实现个 /** * Convert a string to an array * @param string $str * @param number ...
- php字符串分割汉字,php支持中文字符串分割的函数
本文给大家分享了2个php使用mb_xxx方法来实现中文字符分割的方法,其基本思路都差不多,有需要的小伙伴可以参考下. str_split不支持中文,利用mb_xx函数实现个 /** * Conver ...
- php 字符串 中文,PHP的中文字符串截取
在PHP中,substr()函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文一个字节所占有的字节数不一样,而substr()的长度参数是按照字节去算的.substr()截取位数不准确,sub ...
- php+中午截取,php中截取中文字符串的代码小结
字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到.虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了. 1. 截取GB2312中文 ...
最新文章
- itertools库
- 让Web开发者事半功倍的8个网站
- 做后台支付系统,你要注意这些!!!
- kickstart批量安装Linux系统
- java数据类型后加三个点...
- 计算机高效课堂建设,打造职业学校计算机高效课堂.doc
- js根据数组中对象的多个属性值进行排序
- Springboot 启动时Bean初始化,启动异常-Assert.isTrue(condition,message) 报错
- Bean的自动装配Autowiring
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
- 看jQuery源码的技巧
- matlab求两向量夹角_MATLAB概率和统计(2)
- 第五章第五题(千克与磅之间的互换)(Conversion from kilogram to pound and pound to kilogram)
- Nginx基础之错误页面配置/流量控制/访问控制/变量/监控/HTTPS配置/性能优化
- 差分数组:PIPI的区间操作Ⅰ
- CSDN日报180605——《认知升级是令我们变得优秀的重要基石》
- ImageView设置rounded corner
- 又一暴强的截图工具 ShareX
- 无损放大图片软件有什么?安利几款放大图片的软件
- 转载知乎大神设置普通路由器支持IPV6