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 EOT定界符的使用详解
Sep 30 PHP
php 数组二分法查找函数代码
Feb 16 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
php中define用法实例
Jul 30 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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的拦截器实例分析
2014/11/03 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
python使用append合并两个数组的方法
2015/04/28 Python
Python复制文件操作实例详解
2015/11/10 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python实现支付宝转账接口
2019/05/07 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
2014春晚主持词
2014/03/25 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
安全生产会议制度
2015/08/06 职场文书
如何用python反转图片,视频
2021/04/24 Python
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
python自动化八大定位元素讲解
2021/07/09 Python
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript