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中通过smtp发邮件的类,测试通过
Jan 22 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 PHP
PHP消息队列用法实例分析
Feb 12 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
php用户登录之cookie信息安全分析
May 13 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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学习笔记之二
2011/01/17 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
javascript self对象使用详解
2016/10/18 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
vue-cli配置文件——config篇
2018/01/04 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
python 接收处理外带的参数方法
2018/12/03 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
利用python 读写csv文件
2020/09/10 Python
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
explicit和implicit的含义
2012/11/15 面试题
机电专业大学生职业规划书范文
2014/02/25 职场文书
公司节能减排方案
2014/05/16 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
四查四看整改措施
2014/09/19 职场文书
小学中队活动总结
2015/05/11 职场文书
代理词怎么写
2015/05/25 职场文书
安全教育主题班会总结
2015/08/14 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle