解决中英文字符串长度问题函数
function strSplit($s, $len) {
$end = '…';
$result = '';
$strLen = strlen($s);
if ($strLen <= $len) {
return $s;
}
$len -= 2;
for ($i=0; $i<$len && $i<$strLen; $i++) {
$c = $s[$i];
if (ord($c) < 0x80) {
$result .= $c;
} elseif ($i+1<$len) {
$result .= $s[$i++] . $s[$i];
}
}
return ($i < $strLen) ? ($result . $end) : $result;
}
echo strSplit('1234567', 10), '<br />';
echo strSplit('1234567890', 10), '<br />';
echo strSplit('1234中文567890abcdefghijkl', 10), '<br />';
echo strSplit('全部都是中文', 10), '<br />';
echo strSplit('全a部b都c是d中e文', 10), '<br />';
输出:
1234567
1234567890
1234中文…
全部都是…
全a部b都…
相关推荐
-
解决中英文字符串长度问题函数
复制代码 代码如下: function strSplit($s, $len) { $end = '-'; $result = ''; $strLen = strlen($s); if ($strLen <= $len) { return $s; } $len -= 2; for ($i=0; $i<$len && $i<$strLen; $i++) { $c = $s[$i];
-
利用PHP函数计算中英文字符串长度的方法
本文实例讲述了利用PHP函数计算中英文字符串长度的方法.分享给大家供大家参考.具体实现方法如下: 一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen(). 具体代码如下: 复制代码 代码如下: echo $str = 'PHP点点通'; echo strlen($str); //3*1+3*3=12
-
C++不使用变量求字符串长度strlen函数的实现方法
本文实例讲述了C++不使用变量求字符串长度strlen函数的实现方法.分享给大家供大家参考.具体实现方法如下: 1.strlen的源码实现: size_t strlen(const char *str) //strlen不做内存非法判断,如果是NULL,会core. { const char *eos=str; while(*eos++); return (eos-str-1); } 2.常见面试题会要求不使用额外变量,实现strlen函数: 实现一: int strlen(const char
-
解决PHP字符串长度不一致的问题
如下所示: $paramStr = iconv("UTF-8", "GB2312//Ignore", $paramStr); $paramStr = iconv("GB2312", "UTF-8//Ignore", $paramStr); 这两句就可以解决了. 以上这篇解决PHP字符串长度不一致的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
C语言中求字符串长度的函数的几种实现方法
1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { assert(str != NULL); int count = 0; while (*str != '\0') { count++; str++; } return count; } 2.不创建计数器,从前向后遍历一遍,没有遇到'\0'就让指针向后加一,找到最后一个字符,记下来地址,然后用最后一个字符的地址减去起始地址,就得到了字符串的长度.
-
字符串长度函数strlen和mb_strlen的区别示例介绍
在php中常见的计算字符串长度的函数有:strlen和mb_strlen.当字符全是英文字符的时候,两者是一样.这里主要比较一下,中英文混排的时候,两个计算结果. 在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别. 下面通过例子,讲解这两者之间的区别. 先看例子: <?php //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo
-
php自定义函数实现统计中文字符串长度的方法小结
本文实例讲述了php自定义函数实现统计中文字符串长度的方法.分享给大家供大家参考,具体如下: 中文字符计算为2个字符 英文字符计算为1个 代码 /** * 可以统计中文字符串长度的函数 * */ function abslength($str) { $len=strlen($str); $i=0; while($i<$len) { if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$str
-
php中计算中文字符串长度、截取中文字符串的函数代码
在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. 复制代码 代码如下: header('Content-type:text/html;cha
-
C++获取字符串长度的几个函数方式
C/C++ strlen(str).str.length().str.size().sizeof(str)都可以求字符串长度. 其中str.length().str.size().sizeof(str)是用于求string类对象的成员函数 strlen(str)是用于求字符数组的长度,其参数是char*. 补充知识:获取字符串长度的函数sizeof().strlen().length().size()详解和区别 在C++中计算长度的函数有四种,它们分别是sizeof() ,size(),strl
-
php的数组与字符串的转换函数整理汇总
1.将一个字符串转化为数组str_split()用于将一个字符串转化为数组语法: 复制代码 代码如下: str_split(string,length)<SPAN style="COLOR: #333333"><SPAN style="FONT-SIZE: 12px"><SPAN style="FONT-FAMILY: 宋体">//</SPAN></SPAN></SPAN>s
随机推荐
- 详解vue数据渲染出现闪烁问题
- VBS教程:属性-TotalSize 属性
- bat下产生指定范围随机数字的实现方法
- oracle使用sql语句增加字段示例(sql删除字段语句)
- 谈谈JS中常遇到的浏览器兼容问题和解决方法
- php的array数组和使用实例简明教程(容易理解)
- Android中控件GridView实现设置行列分割线的方法示例
- canvas仿iwatch时钟效果
- 搭建SSH时的思考和遇到的几个问题的解决方法
- android开发之横向滚动/竖向滚动的ListView(固定列头)
- javaScript复制功能调用实现方案
- MongoDB的安装方法图文教程
- mysql 维护常用命令
- Uglifyjs(JS代码优化工具)入门 安装使用
- 在Linux环境中使用USB存储器
- 基于Java实现杨辉三角 LeetCode Pascal's Triangle
- postman+json+springmvc测试批量添加实例
- 关于ThinkPHP中的异常处理详解
- Django之提交表单与前后端交互的方法
- Mysql查看最大连接数和修改最大连接数的讲解