支持中文和其他编码的php截取字符串函数分享(截取中文字符串)_php实例

简单的字符串截取方法,支持中文和其他编码,传入相对应的参数直接调用就可以了

复制代码 代码如下:

/**
 * 字符串截取,支持中文和其他编码
 * @static
 * @access public
 * @param string $str 需要转换的字符串
 * @param string $start 开始位置
 * @param string $length 截取长度
 * @param string $charset 编码格式
 * @param string $suffix 截断显示字符
 * @return string
 */
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
    if(function_exists("mb_substr"))
        $slice = mb_substr($str, $start, $length, $charset);
    elseif(function_exists('iconv_substr')) {
        $slice = iconv_substr($str,$start,$length,$charset);
        if(false === $slice) {
            $slice = '';
        }
    }else{
        $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
        $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
        $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
        preg_match_all($re[$charset], $str, $match);
        $slice = join("",array_slice($match[0], $start, $length));
    }
    return $suffix ? $slice.'...' : $slice;
}

时间: 2024-10-31 17:55:20

支持中文和其他编码的php截取字符串函数分享(截取中文字符串)_php实例的相关文章

支持中文和其他编码的php截取字符串函数分享

 这篇文章主要介绍了支持中文和其他编码的php截取字符串函数示例(截取中文字符串),需要的朋友可以参考下 简单的字符串截取方法,支持中文和其他编码,传入相对应的参数直接调用就可以了  代码如下: /**  * 字符串截取,支持中文和其他编码  * @static  * @access public  * @param string $str 需要转换的字符串  * @param string $start 开始位置  * @param string $length 截取长度  * @param

php字符串截取,支持中文和其他编码

 代码如下 复制代码 <? /**  * 字符串截取,支持中文和其他编码  *  * @static  * @access public  * @param string $str 需要转换的字符串  * @param string $start 开始位置  * @param string $length 截取长度  * @param string $charset 编码格式  * @param string $suffix 截断显示字符  * @return string  */ functi

phpthink中字符串截取代码-支持中文和其它编码

 代码如下 复制代码 /** +---------------------------------------------------------- * 字符串截取,支持中文和其它编码 +---------------------------------------------------------- * @param string $str 需要转换的字符串 * @param string $start 开始位置 * @param string $length 截取长度 * @param s

CentOS支持中文和ssh支持中文输入的修改

  CentOS支持中文和ssh支持中文输入的修改           Linux支持中文,修改/etc/sysconfig/i18n文件 LANG="zh_CN.GB18030" SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16" ssh支持中文输入的修改,如图: 1.如图,点击[Change],选择新宋体或者宋体 2.选择如图红

asp.net-C#中params的使用,为什么在调用函数时会出现输入字符串的格式不正确的问题

问题描述 C#中params的使用,为什么在调用函数时会出现输入字符串的格式不正确的问题 第一张是我写的函数, 第二张是调用出错 请问该怎么改,我需要传递到函数中的参数是不定个整形参数 解决方案 s.getinfo();//这个括号里你放个int型数组,然后将你的数给这个数组应该就可以了,你试试:要不然括号里的你要加花括号的,因为是一个数组: 如果回答对你有帮助,请采纳 解决方案二: params的用法没有错,可以试试这个,用法是一样的 using System; namespace Conso

php对包含html标签的字符串进行截取的函数分享_php实例

这个方法的作用是:php截取含有html标签的字符串,如果标签未闭合就闭合标签,防止未闭合的标签破坏原网页布局.截取完之后将多余的内容替换为...或者其他任意字符,支持锚点指定替换到指定位置. /* * ============================== 截取含有 html标签的字符串 ========================= * @param (string) $str 待截取字符串 * @param (int) $lenth 截取长度 * @param (string)

SQL截取字符串函数分享_MsSql

A.截取从字符串左边开始N个字符 Declare @S1 varchar(100) Select @S1='http://www.xrss.cn' Select Left(@S1,4) ------------------------------------ 显示结果: http B.截取从字符串右边开始N个字符(例如取字符www.163.com) Declare @S1 varchar(100) Select @S1='http://www.163.com' Select right(@S1,

C++中可正确获取UTF-8字符长度的函数分享_C 语言

在C++的char*以及string中,使用的是字节流编码,即sizeof(char) == 1. 也就是说,C++是不区分字符的编码的. 而一个合法UTF8的字符长度可能为1-4位. 现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的"CharPoint",而不会错误的分割字符呢? 参考这个页面:http://www.nubaria.com/en/blog/?p=289 可以改造出下面的函数: const unsigned char kFirstBitMask =

SQL截取字符串函数分享

A.截取从字符串左边开始N个字符 Declare @S1 varchar(100) Select @S1='http://www.xrss.cn' Select Left(@S1,4) ------------------------------------ 显示结果: http B.截取从字符串右边开始N个字符(例如取字符www.163.com) Declare @S1 varchar(100) Select @S1='http://www.163.com' Select right(@S1,