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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php调用shell的方法
Nov 05 PHP
php中memcache 基本操作实例
May 17 PHP
php强制用户转向www域名的方法
Jun 19 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
自制PHP框架之模型与数据库
May 07 PHP
php中使用array_filter()函数过滤数组实例讲解
Mar 03 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
PHP与以太坊交互详解
2018/08/24 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
python的类方法和静态方法
2014/12/13 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
个人函授自我鉴定
2014/03/25 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
关爱空巢老人感想
2015/08/11 职场文书
环保建议书作文300字
2015/09/14 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS