php截取中文字符串函数实例


Posted in PHP onFebruary 23, 2015

本文实例讲述了php截取中文字符串函数。分享给大家供大家参考。具体实现方法如下:

<?php

//中文字符串截取

function substr_zh($string,$sublen,$start=0,$code='UTF-8'){

 if($code=='UTF-8'){

  $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";

  preg_match_all($pa,$string,$t_string);

  if(count($t_string[0])-$start > $sublen){

   return join('',array_slice($t_string[0],$start,$sublen))."...";

   //array_slice()在数组中根据条件取出一段值,参数(数组,开始位置,[长度])

  }else{

   return join('',array_slice($t_string[0],$start,$sublen));

  }

 }else{

  $start = $start*2;

  $sublen = $sublen*2;

  $strlen = strlen($string);

  $tmpstr = '';

  for($i=0;$i<$strlen;$i++){

   if($i>$start && $i<($start+$sublen)){

    if(ord(substr($string,$i,1))>129){

    //ord():返回字符串第一个字符的ASCII值

    //substr():返回字符串的一部分

     $tmpstr .= substr($string,$i,2);

    }else{

     $tmpstr .= substr($string,$i,1);

    }

   }

   if(ord(substr($string,$i,1))>129){

    $i++;

   }

   if(strlen($tmpstr)<$strlen){

    $tmpstr .= "...";

   }

  }

  return $tmpstr;

 }

}

$string ="顶置车顶起困境??上盯协押畏奇才趄肯困楞右脚可爱有";

echo substr_zh($string,10,0,'gb2312');

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
文件系统基本操作类
Nov 23 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
PHP 全角转半角实现代码
May 16 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
浅析php创建者模式
Nov 25 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
php输入数据统一类实例
Feb 23 #PHP
php简单定时执行任务的实现方法
Feb 23 #PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 #PHP
Yii学习总结之安装配置
Feb 22 #PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 #PHP
十幅图告诉你什么是PHP引用
Feb 22 #PHP
PHP的引用详解
Feb 22 #PHP
You might like
php中的登陆login
2007/01/18 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
纪检监察建议书
2014/05/19 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
颐和园导游词
2015/01/30 职场文书
创业计划书之家教托管
2019/09/25 职场文书
Python 如何安装Selenium
2021/05/06 Python
python基础之函数的定义和调用
2021/10/24 Python
Spring 使用注解开发
2022/05/20 Java/Android