1.字符串长度

PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改

/** * PHP获取字符串中英文混合长度 * @param $str string 字符串 * @param $$charset string 编码 * @return 返回长度,1中文=1位,2英文=1位 */ function strLength($str,$charset='utf-8'){ if($charset=='utf-8') $str = iconv('utf-8','gb2312',$str); $num = strlen($str); $cnNum = 0; for($i=0;$i<$num;$i++){ if(ord(substr($str,$i+1,1))>127){ $cnNum++; $i++; } } $enNum = $num-($cnNum*2); $number = ($enNum/2)+$cnNum; return ceil($number); } //测试输出长度都为15 $str1 = '测试测试测试测试测试测试测试测'; $str2 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; $str3 = 'aa测试aa测试aa测试aa测试aaaaaa'; echo strLength($str1,'gb2312'); echo strLength($str2,'gb2312'); echo strLength($str3,'gb2312');

2.截取字符串函数

UTF8编码,在UTF8中,一个中文字符占3个字节

function msubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++){ if(ord(substr($str, $i, 1)) > 127){ $tmpstr.=substr($str, $i, 3); $i+=2; }else $tmpstr.= substr($str, $i, 1); } return $tmpstr; } echo msubstr("一二三天下致公english",0,10);

GB2312编码,在gb2312中,一个中文字符占2个字节

<?php function msubstr($str, $start, $len) { //ȡ $tmpstr = ""; $strlen = $start + $len; if(preg_match('/[/d/s]{2,}/',$str)){$strlen=$strlen-2;} for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; } ?>

编码兼容性良好的函数

function cc_msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) return mb_substr($str, $start, $length, $charset); elseif(function_exists('iconv_substr')) { return iconv_substr($str,$start,$length,$charset); } $re['utf-8'] = "/[/x01-/x7f]|[/xc2-/xdf][/x80-/xbf]|[/xe0-/xef][/x80-/xbf]{2}|[/xf0-/xff][/x80-/xbf]{3}/"; $re['gb2312'] = "/[/x01-/x7f]|[/xb0-/xf7][/xa0-/xfe]/"; $re['gbk'] = "/[/x01-/x7f]|[/x81-/xfe][/x40-/xfe]/"; $re['big5'] = "/[/x01-/x7f]|[/x81-/xfe]([/x40-/x7e]|/xa1-/xfe])/"; preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length)); if($suffix) return $slice."…"; return $slice; }

PHP 判断字符串长度及字符串切割问题相关推荐

  1. python设定字符串长度_python 修改字符串长度_Python 字符串操作

    字符串常用操作 判断 变量.endswith("结尾字符"):判断结尾字符串. 变量.isalnum():判断是否是字母或数字. 变量.isalpha():判断是否是存英文字符. ...

  2. C# 获取字符串长度 获取字符串字节长度

    获取字符串长度 string str = "ABCDadcf测试"; int l = str.Length; 获取字符串字节长度 public int ByteLength(str ...

  3. python22个字符串长度_python字符串处理内置方法一览表

    序号 方法及描述 1 capitalize() 将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填 ...

  4. Bailian2681 求字符串长度【字符串】

    求字符串长度 总时间限制: 1000ms 内存限制: 65536kB 描述 求一个长度不大于100的字符串的长度,要求不使用strlen方法,并且使用到字符指针. 输入 输出 字符串的长度. 样例输入 ...

  5. PHP开发之字符串长度以及字符串子串截取相关函数总结

    PHP 字符串获取,用于从字符串中获取指定字符串. 相关函数如下: strlen():返回字符串长度. substr():从字符串中获取其中的一部分 strstr():查找字符串在另一个字符串中第一次 ...

  6. java字符串长度(java字符串长度压缩)

    Java字符串按字节数截取长度是什么? * 解释: * 此处的编码方式应该是操作系统默认的GB编码,即汉字占2个字节且第一个字节的最高位是1, * 如果理解为有符号数的话,就是负数:而英文占1个字节, ...

  7. c语言限制字符串长度范围,字符串长度C语言版

    题目描述: 在右侧我们给出了一个已经基本完成的程序,读入了一个字符串,调用了一个叫str_len的函数来计算这个字符串的长度,并输出. 聪明的你应该已经发现了,这个叫str_len的函数并没有完成,在 ...

  8. c mysql 返回字符串长度_C字符串截取、C数据库操作

    1.字符串截取 #include#include char* substring(char* ch,int pos,intlength) {//定义字符指针 指向传递进来的ch地址 char* pch ...

  9. php mysql 截取字符串长度,mysql字符串截取

    MySQL 字符串截取函数有:left(), right(), substring(), substring_index().还有 mid(), substr(); 一:left(str, lengt ...

最新文章

  1. Git,Github和Gitlab简介和使用方法
  2. CentOS6.4之文本编辑器Vi/Vim
  3. 使用TensorFlow进行鬼写
  4. 【渝粤教育】国家开放大学2018年春季 0703-21T经济学基础 参考试题
  5. 军队计算机使用管理规定,军队通用计算机系统使用安全要求.doc
  6. 计算机网络之数据通信基础知识
  7. ORACLE数据库的模式对象的管理与维护
  8. 餐饮水单打印软件_介绍送货单打印软件模板样式之购物小票格式
  9. c语言作业的搜题软件下载,C语言题库app下载-C语言题库下载v2.3 安卓版-西西软件下载...
  10. c语言怎么学自学,初学者如何学习c语言,带你玩转C语言
  11. excel计算数据的差和的公式和方法、相关系数、绝对误差
  12. 【视频学习笔记】(霹雳吧啦Wz)MobileNet 系列
  13. android 百度地图自定义定位小箭头图标,并随着手机方向转动
  14. CISCO路由器交换机简介及Packet+Tracer使用说明
  15. 前端React教程第六课 认识栈调和、setState和Fiber架构
  16. 虚拟机kali升级最新_kali安装、改变更新源、vmware tools、虚拟机全屏
  17. htmldd隐藏,如何在隐藏“dd”后隐藏“dd”
  18. 分段存储管理+逻辑地址转化为物理地址+例题
  19. [Usaco2008 Open]Crisis on the Farm 牧场危机
  20. 电子商务复习笔记一:电子商务概述与类型

热门文章

  1. Android 图片设置坐标点
  2. 计算机无法登录到你的账户,win10电脑无法登陆到你的账户怎么办?win10电脑无法登陆到你的账户相关讲解...
  3. 关于word的样式类型
  4. Python从入门到实战,我觉着拥有这三本书很有必要
  5. 通过ping检测网络故障的典型次序
  6. Windows10如何删除自带输入法,设置默认输入法
  7. 软件开发中 常见英文文档 缩写(转)
  8. java spel_Java spring SPEL表达式注入
  9. 仿淘宝商品详情页[带有视频和图片的轮播功能]
  10. Android黄油计划之Choreographer原理解析