2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > strlen与mb_strlen字符串长度函数

strlen与mb_strlen字符串长度函数

时间:2024-02-26 06:01:33

相关推荐

strlen与mb_strlen字符串长度函数

php教程|php手册

函数 字符串

php教程-php手册

微擎付费小说源码,启动ubuntu的桌面,水木爬虫 jinghua,php转join,建筑seo入门lzw

懂PHP的都知道strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。

网络培训系统源码,ubuntu自己安装显卡,项目中tomcat启动不了,amazon运营爬虫,php获取数组前几个,微信seo操作教程seo教程lzw

懂PHP的都知道strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。

先看这样一段代码吧(先决条件是:字符编码为UTF-8):

易语言取百度时间源码,vscode rg,Ubuntu怎么修复,ftp tomcat,sqlite 计算平方,vps和云服务器,移动端滑动下拉框插件,前端框架怎么查,天涯爬虫哥,php鸟哥是谁,seo操作视频,橙色企业网站模板,横向网页源码,网页栅格化模板,页面右侧添加导航菜单,javaweb文件管理系统源码,商业access程序lzw

<?

$str = ‘懂PHP的都知道strlen与mb_strlen是求字符串长度的函数’;

echo strlen($str)’.

‘.mb_strlen($str,’utf-8’);

?>

运行上述代码,返回值如下:

66

34

怎么样?strlen中,中文是三个字节的长度,英文则是一个字节的长度!mb_strlen中,都被计算为一字节的长度!所以,我们有时候用substr来截取UTF-8中文字符串的时候,经常会出现乱码,就是这个原因了!

下面提供一个截取UTF-8字符串的函数:

function cutstr($sourcestr,$cutlength){

$returnstr = ”;

$i = 0;

$n = 0;

$str_length = strlen($sourcestr);

$mb_str_length = mb_strlen($sourcestr,’utf-8′);

while(($n < $cutlength) && ($i <= $str_length)){

$temp_str = substr($sourcestr,$i,1);

$ascnum = ord($temp_str);

if($ascnum >= 224){

$returnstr = $returnstr.substr($sourcestr,$i,3);

$i = $i + 3;

$n++;

}

elseif($ascnum >= 192){

$returnstr = $returnstr.substr($sourcestr,$i,2);

$i = $i + 2;

$n++;

}

elseif(($ascnum >= 65) && ($ascnum <= 90)){

$returnstr = $returnstr.substr($sourcestr,$i,1);

$i = $i + 1;

$n++;

}

else{

$returnstr = $returnstr.substr($sourcestr,$i,1);

$i = $i + 1;

$n = $n + 0.5;

}

}

if ($mb_str_length > $cutlength){

$returnstr = $returnstr . “…”;

}

return $returnstr;

}

使用例子:

<?

$str = ‘有效期最长三个月,超过有效期系统将自动删除本条信息’;

//echo strlen($str);

//echo ‘

‘.mb_strlen($str,’utf-8’);

echo ‘

‘.$str;

echo ‘

‘.cutstr($str,24);

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。