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 auth_http类库进行身份效验
Mar 19 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
php中文语义分析实现方法示例
Sep 28 PHP
Laravel 连接(Join)示例
Oct 16 PHP
phpquery中文手册
Mar 18 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Python序列类型的打包和解包实例
2019/12/21 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
优秀班干部事迹材料
2014/01/26 职场文书
网站客服岗位职责
2014/04/05 职场文书
领导欢迎词范文
2015/01/26 职场文书
太行山上观后感
2015/06/05 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
python3操作redis实现List列表实例
2021/08/04 Python
mongodb清除连接和日志的正确方法分享
2021/09/15 MongoDB