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 相关文章推荐
mysql建立外键
Nov 25 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
实用函数2
Nov 08 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
php错误、异常处理机制(补充)
May 07 PHP
PHP SplObjectStorage使用实例
May 12 PHP
PHP滚动日志的代码实现
Jun 10 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php 可变函数使用小结
Jun 12 PHP
php服务器的系统详解
Oct 12 PHP
Laravel开启跨域请求的方法
Oct 13 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/05/24 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
JS实现页面打印功能
2017/03/16 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
Python牛刀小试密码爆破
2011/02/03 Python
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python之pandas用法大全
2018/03/13 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
python保留小数位的三种实现方法
2020/01/07 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
详解HTML5中div和section以及article的区别
2015/07/14 HTML / CSS
乡镇办公室工作决心书
2014/03/11 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
小学班主任自我评价
2015/03/11 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
世界十大狙击步枪排行榜
2022/03/20 杂记
python双向链表实例详解
2022/05/25 Python