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 相关文章推荐
php中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
如何在php中正确的使用json
Aug 06 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
php中__toString()方法用法示例
Dec 07 PHP
php精度计算的问题解析
Jun 21 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
laravel 解决crontab不执行的问题
Oct 22 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
基于initPHP的框架介绍
2013/04/18 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
Python单链表简单实现代码
2016/04/27 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
python实现简单五子棋游戏
2019/06/18 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
个人教师自我评价范文
2013/12/02 职场文书
文明餐桌活动方案
2014/02/11 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
个人原因辞职信模板
2015/05/13 职场文书
惊天动地观后感
2015/06/10 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书