热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php实现中文截取无乱码的方法,php按字符无乱码截取中文的方法

$str待截取的字符串$len截取的字符个数$chars已经截取的字符数$res保存的字符串$chars保存已经截取的字符串个数$offset截取的偏移量$length字符串的字节

//$str 待截取的字符串

//$len 截取的字符个数

//$chars 已经截取的字符数

//$res 保存的字符串

//$chars 保存已经截取的字符串个数

//$offset 截取的偏移量

//$length 字符串的字节数

//若$len>$str的字符个数,造成无谓的while循环,($offset

function utf8sub($str,$len){

if($len<&#61;0){

return ;

}

$res&#61;"";

$offset&#61;0;

$chars&#61;0;

$length&#61;strlen($str);

while($chars

$hign&#61;decbin(ord(substr($str,$offset,1)));

if(strlen($hign)<8){

$count&#61;1;

}elseif(substr($hign,0,3)&#61;&#61;"110"){

$count&#61;2;

}elseif(substr($hign,0,4)&#61;&#61;"1110"){

$count&#61;3;

}elseif(substr($hign,0,5)&#61;&#61;"11110"){

$count&#61;4;

}elseif(substr($hign,0,6)&#61;&#61;"111110"){

$count&#61;5;

}elseif(substr($hign,0,7)&#61;&#61;"1111110"){

$count&#61;6;

}

$res.&#61;substr($str,$offset,$count);

$offset&#43;&#61;$count;

$chars&#43;&#61;1;

}

return $res;

}

function utf8sub1($str,$len){

$chars&#61;0;

$res&#61;"";

$offset&#61;0;

$length&#61;strlen($str);

while($chars

$hign&#61;decbin(ord(substr($str,$offset,1)));

if(strlen($hign)<8){

$count&#61;1;

}elseif($hign & "11100000"&#61;&#61;"11000000"){

$count&#61;2;

}elseif($hign & "11110000"&#61;&#61;"11100000"){

$count&#61;3;

}elseif($hign & "11111000"&#61;&#61;"11110000"){

$count&#61;4;

}elseif($hign & "11111100"&#61;&#61;"11111000"){

$count&#61;5;

}elseif($hign & "11111110"&#61;&#61;"11111100"){

$count&#61;6;

}

$res.&#61;substr($str,$offset,$count);

$chars&#43;&#43;;

$offset&#43;&#61;$count;

}

return $res;

}

$a&#61;"中华ah人民hdj";

echo utf8sub($a,5);

?>



推荐阅读
  • Linux文件目录和权限
    Linux文件目录和权限前言:Linux一般将文件可存取的身份分为三个类别,分别是ownergroupothers,根据权限划分,每个目录都可以拥有相对身份的-rwx[可读可写可执 ... [详细]
  • linux json 写sql注入,sql注入之json注入(php代码)
    环境phpstudyphp服务端代码security数据库中的users表中的username,password字段用户名adminJSON服务端代码大家实际测试中注 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 配置OracleACFS集群文件系统
    配置OracleACFS集群文件系统               2012-07-1010:18:39标签:asmacfs版权声明:原创作品,谢绝转载!否则将追究法律责任。     ... [详细]
  • [字符编码]Numeric Character Reference和HTML Entities(一)
    你是否在dreamweaver里编辑网页的时候看到&#x3A3;这样的东西,你曾使用过&nbsp;这样的玩意吧,或者你在调试webservice的时候看到返回xml字符串中现 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了迭代数组的问题相关的知识,希望对你有一定的参考价值。我在浏 ... [详细]
  • Matlab中利用mex编译Opencv实现画板绘图功能
    图形绘制是标记和可视化数据的重要方法.通过在Matlab中集成画板绘图功能,可为科学计算提供便利.1设置Matlab支持Opencv编译操作系统:麒麟14.04(基于Ubu ... [详细]
  • 这篇文章主要讲解了“GradeBook类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grad ... [详细]
  • JS加密解密
    leta=汪政..222RRRp767868^*%^*%344h哈哈;letb=udp.d(ud(a));//需要加密的内容letc=udp. ... [详细]
  • 首页#father{border:0pxso ... [详细]
  • socket8 [命名管道]
    ::命名管道不但能实现同一台机器上两个进程通信,还能在网络中不同机器上的两个进程之间的通信机制。与邮槽不同,命名管道是采用基于连接并且可靠的传输方式,所以命名管道传输数据只能一对一 ... [详细]
  • 开发笔记:图书管理系统( JSP + JDBC + Servlet )实现01: 流程分析和数据库建表阶段
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了图书管理系统(JSP+JDBC+Servlet)实现-01:流程分析和数据库建表阶段相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关键词:LinuxJDKJRE解决JRE中文乱码解决FireFox不支持appletl 安装JDK1、  安装jdkroot用户进入jdk安装文件所在目录,键入chmoda+xjd ... [详细]
  • 这篇文章主要介绍“大文本数据怎么导入导出到数据库”,在日常操作中,相信很多人在大文本数据怎么导入导出到数据库问题上存在疑惑,小编查阅了各 ... [详细]
  • 六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...
    六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现一、主动模式和被动模式主动或者被动是相对客户端来讲的被动模式,服务端会主动连接客户 ... [详细]
author-avatar
Li-zHihuAn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有