php中截取字符串支持utf-8


Posted in PHP onJanuary 18, 2007

截取字符串
<?php
$string="2006年4月我又长大了一岁!";
echo substr($string,1)."..."; 
 //截取字符串 
function SubstrGB($in,$num)
{
 $pos=0;
 $out="";
 while($pos<strlen($in))
 {
  $c=substr($in,$pos,1);
  if($c=="\n") break;
  if(ord($c)>128)
  {
   $out.=$c;
   $pos++;
   $c=substr($in,$pos,1);
   $out.=$c;
  }
  else
  {
   $out.=$c;
  }
  $pos++;
  if($pos>=$num) break;
 }
        return $out;

  echo SubstrGB($string,8) ;
 ?> 
<?php
/***************************************************************************
 *            cut_string.php
 *        ------------------------------
 *    Date        : Jul 16, 2005
 *    Copyright    : none
 *    Mail        : 
 *
 *    作用:截取中文字符.
 *
 *
 ***************************************************************************/
function cut_str($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))."...";
        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) $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;
    }
}
    echo "<br>".cut_str($string,8,$start=0,$code='sdf') ;
?> 

PHP 相关文章推荐
《APMServ 5.1.2》使用图解
Oct 23 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php中的strpos使用示例
Feb 27 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
PHP发送短信代码分享
Aug 11 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
php中的登陆login
Jan 18 #PHP
php中的时间显示
Jan 18 #PHP
解决phpmyadmin中文乱码问题。。。
Jan 18 #PHP
php批量删除数据
Jan 18 #PHP
mysql 的 like 问题,超强毕杀记!!!
Jan 18 #PHP
一个更简单的无限级分类菜单代码
Jan 16 #PHP
解决中英文字符串长度问题函数
Jan 16 #PHP
You might like
PHP的可变变量名的使用方法分享
2012/02/05 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
php实现的短网址算法分享
2014/06/20 PHP
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
前端微信支付js代码
2016/07/25 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
教你安装python Django(图文)
2013/11/04 Python
Python多线程实例教程
2014/09/06 Python
Python文件去除注释的方法
2015/05/25 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
详解python itertools功能
2020/02/07 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
农业大学毕业生的个人自我评价
2013/10/11 职场文书
室内设计专业学生的自我评价分享
2013/11/27 职场文书
初中生期末考试的自我评价
2013/12/17 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
房屋租赁协议书
2014/10/18 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers