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文件
Jan 04 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
用php实现选择排序的解决方法
May 04 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
php框架知识点的整理和补充
Mar 01 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快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
理解Python中函数的参数
2015/04/27 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
Python中的self用法详解
2019/08/06 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
台湾森森购物网:U-mall
2017/10/16 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
门卫岗位职责
2013/11/15 职场文书
企业演讲稿范文
2013/12/28 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
工程专业应届生求职信
2014/02/19 职场文书
北京奥运会主题口号
2014/06/13 职场文书
教师师德工作总结2015
2015/07/22 职场文书
导游词之日月潭
2019/11/05 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
python playwright 自动等待和断言详解
2021/11/27 Python
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL