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 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现生成数据字典功能示例
May 24 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 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验证码类
2017/07/06 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
WEB前端设计师常用工具集锦
2014/12/09 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
webpack打包nodejs项目的方法
2018/09/26 NodeJs
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
python二分法实现实例
2013/11/21 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
墨西哥网上超市:Superama
2018/07/10 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
元旦促销方案
2014/03/15 职场文书
挂牌仪式主持词
2014/03/20 职场文书
什么是就业协议书
2014/04/17 职场文书
团队激励口号
2014/06/06 职场文书
陪护人员误工证明
2015/06/24 职场文书
《雷雨》教学反思
2016/02/20 职场文书