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 相关文章推荐
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
php实现cookie加密的方法
Mar 10 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 PHP
php测试kafka项目示例
Feb 06 PHP
PHP程序员必须知道的两种日志实例分析
May 14 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
合作指挥官:孟斯克
2020/03/16 星际争霸
?生?D片??C字串
2006/12/06 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
英文自荐信
2013/12/15 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
Python基础知识之变量的详解
2021/04/14 Python
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS