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数据库连接类~~做成一个分页类!
Nov 25 PHP
php 生成短网址原理及代码
Jan 23 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
php实现事件监听与触发的方法
Nov 21 PHP
php实现过滤UBB代码的类
Mar 12 PHP
php一个解析字符串排列数组的方法
May 12 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
php设计模式之委托模式
Feb 13 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 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连接MYSQL成功与否的代码
2013/08/16 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
js DOM模型操作
2009/12/28 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
基于Python List的赋值方法
2018/06/23 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python脚本第一行如何写
2020/08/30 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
农村婚礼证婚词
2014/01/10 职场文书
跳蚤市场口号
2014/06/13 职场文书
求职简历自荐信
2014/06/18 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android