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 相关文章推荐
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
用php解析html的实现代码
Aug 08 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
php使用curl访问https示例分享
Jan 17 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
php多线程并发实现方法
Sep 30 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
Swoole实现异步投递task任务案例详解
Apr 02 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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python爬取APP下载链接的实现方法
2016/09/30 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
详解Python字典的操作
2019/03/04 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python挖矿算力测试程序详解
2019/07/03 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
python语言中有算法吗
2020/06/16 Python
python实现图像外边界跟踪操作
2020/07/13 Python
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
管理部部长岗位职责
2013/12/05 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
服务承诺书
2015/01/19 职场文书
幼儿园感谢信
2015/01/21 职场文书
中英文求职信范文
2015/03/19 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书