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 读取文件乱码问题
Feb 20 PHP
基于PHP文件操作的详解
Jun 05 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
Aug 21 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
php报错502badgateway解决方法
Oct 11 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
Python类的专用方法实例分析
2015/01/09 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
使用python实现链表操作
2018/01/26 Python
python单例模式的多种实现方法
2019/07/26 Python
selenium如何定位span元素的实现
2021/01/13 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
一套PHP的笔试题
2013/05/31 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
初中生自我评价
2014/02/01 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2014年实习期工作总结
2014/11/27 职场文书
户外活动总结
2015/02/04 职场文书
中国合伙人观后感
2015/06/02 职场文书
工作收入证明模板
2015/06/12 职场文书