解决中英文字符串长度问题函数
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
随机推荐
- Android RecyclerView的简单使用
- 使用批处理禁用(启用)组策略的代码
- 详细解读Hibernate的缓存机制
- CocoaPods 出现LoadError - cannot load such file -- nanaimo错误解决办法
- Oracle 9i产品文档
- 对于input 框限定输入值为浮点型的js代码
- 浅析常用分词算法的比较与设想
- 六、访问CGI变量
- CentOS6.4上使用yum安装mysql
- mysql简单实现查询结果添加序列号的方法
- PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
- 基于EJB技术的商务预订系统的开发
- HTML文本框的值改变后触发后台代码的方法
- CentOS 7 下LAMP实现及基于https的虚拟化主机
- sql not in 与not exists使用中的细微差别
- 基于JQuery的Ajax方法使用详解
- 基于dom编程中 动态创建与删除元素的使用
- Android中使用SQLite3 命令行查看内嵌数据库的方法
- C语言实现图书管理系统
- Python容器使用的5个技巧和2个误区总结