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 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
PHP通用检测函数集合
Feb 08 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php实现在服务器上创建目录的方法
Mar 16 PHP
php删除指定目录的方法
Apr 03 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
Laravel关系模型指定条件查询方法
2019/10/10 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
node.js实现端口转发
2016/04/14 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
使用PDB简单调试Python程序简明指南
2015/04/25 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Python字典dict常用方法函数实例
2020/11/09 Python
python爬取代理ip的示例
2020/12/18 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
教师个人事迹材料
2014/12/17 职场文书
2015年教师节活动总结
2015/03/20 职场文书
外出听课学习心得体会
2016/01/15 职场文书
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers