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 zip文件解压类代码
Dec 02 PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
php中JSON的使用方法
Apr 30 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
PHP构造二叉树算法示例
Jun 21 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
php用户名的密码加密更安全的方法
Jun 21 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
js 数组操作代码集锦
2009/04/28 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
python实现处理mysql结果输出方式
2020/04/09 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
对标管理实施方案
2014/03/12 职场文书
丧事主持词大全
2014/04/02 职场文书
2014年师德承诺书
2014/05/23 职场文书
公司委托书格式范本
2014/09/16 职场文书
初中中等生评语
2014/12/29 职场文书
商务司机岗位职责
2015/04/10 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
吴仁宝观后感
2015/06/09 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书