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生成静态页
Nov 25 PHP
PHP 引用是个坏习惯
Mar 12 PHP
基于header的一些常用指令详解
Jun 06 PHP
基于xcache的配置与使用详解
Jun 18 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
php实现json编码的方法
Jul 30 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 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 数码科技
php对大文件进行读取操作的实现代码
2013/01/23 PHP
php浏览历史记录的方法
2015/03/10 PHP
js实现简单锁屏功能实例
2015/05/27 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
python 全文检索引擎详解
2017/04/25 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
通过实例解析Python return运行原理
2020/03/04 Python
python实现五子棋程序
2020/04/24 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
本科毕业生的求职信范文
2013/11/20 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
2019个人半年工作总结
2019/06/21 职场文书