`
xfcode
  • 浏览: 23375 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

php中文字符串截取函数支持多种编码

    博客分类:
  • php
阅读更多
发布:sunday01   来源:net   阅读: 1   【大 中 小】

为大家提供一个可以支持多种编码的中文字符串截取函数,有需要的朋友,可以研究下。

<?php
/*
* @todo 中文截取,支持gb2312,gbk,utf-8,big5
* @link: 脚本学堂 http://www.jbxue.com
* @param string $str 要截取的字串
* @param int $start 截取起始位置
* @param int $length 截取长度
* @param string $charset utf-8|gb2312|gbk|big5 编码
* @param $suffix 是否加尾缀
*/

function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
if(function_exists("mb_substr"))
return mb_substr($str, $start, $length, $charset);
$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));
if($suffix) return $slice."…";
return $slice;
}
?>


以上代码,看着就牛X,要知道php的正则,那是相当强悍的。
复制以上代码,在你的机器上测试下吧,多动手,有助于快速提高编程水平。

本文原始链接:http://www.jbxue.com/article/6239.html
分享到:
评论

相关推荐

    php中的一个中文字符串截取函数

    在PHP中,字符串截取函数是一个基本的函数,但是它不能正确地处理中文字符串,因为中文字符串在UTF-8编码中占用多个字节,而PHP的截取函数只能截取固定长度的字符串,无法正确地截取中文字符串。因此,需要开发一个...

    php字符串截取.pdf

    **3.1 统一支持的字符串截取函数** ```php function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') { if ($code == 'UTF-8') { // 正则表达式用于匹配UTF-8字符 $pa = "/[\x01-\x7f]|[\xc2-\xdf][\...

    php中支持多种编码的中文字符串截取函数!

    ### PHP中支持多种编码的中文字符串截取函数详解 在PHP开发过程中,处理多语言环境下的字符串是一项常见的任务。特别是对于中文字符的处理,由于不同的编码方式(如GB2312、GBK、UTF-8、BIG5等),可能会遇到各种...

    php截断字符串优化函数 php截断字符串优化函数

    3. **使用`mb_substr()`处理多字节字符:**当处理包含多字节字符(如UTF-8编码的中文字符)的字符串时,`substr()`可能无法正确处理。这时,可以使用`mb_substr()`函数,它能够识别多字节字符并正确截取。例如: ``...

    PHP中如何截取中文字符串

    总结,处理中文字符串截取时,理解字符编码和字符串处理函数的特性至关重要。PHP的mbstring扩展提供了强大且安全的方法来处理多字节字符,确保了中文字符串截取的准确性。在编写代码时,要时刻关注字符串的编码类型...

    多个PHP中文字符串截取函数

    最后,`cut_str` 函数是一个通用的汉字截取函数,支持UTF-8和GB2312编码。它首先根据指定的编码类型进行不同的处理。对于UTF-8编码,它使用类似于`sysSubStr`的方法来处理多字节字符。对于GB2312编码,它则采用与`...

    php通用截取字符串.zip

    `substr()` 是PHP中最基础的字符串截取函数,它可以返回字符串的一部分。它的基本语法是 `substr(string, start, length)`: - `string`:要截取的原始字符串。 - `start`:指定截取的起始位置,如果为正数,从...

    php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例

    这两个自定义函数对于处理中文字符串截取的问题非常有用,尤其是在处理用户输入或者从数据库读取GBK或UTF-8编码的中文数据时,可以有效地防止因编码问题导致的乱码。它们体现了PHP在处理多字节编码字符串时的灵活性...

    php字符串截取[文].pdf

    下面详细介绍了一个针对GB2312编码的中文字符串截取函数。 ##### 函数定义: ```php function mysubstr($str, $start, $len) ``` - **$str**:待截取的字符串。 - **$start**:开始截取的位置。 - **$len**:截取...

    JS PHP字符串截取函数实现原理解析

    然而,当涉及到多字节字符(如中文字符)时,由于一个中文字符通常占用两个字节,使用上述标准的字符串截取函数可能会导致乱码或截取不准确的情况。为解决这个问题,PHP提供了mb_substr()函数,它的工作方式与substr...

    字符串按照指定的字节数来截取

    字符串是由字符组成的序列,而“字符串按照指定的字节数来截取”这个话题,就是指如何在字符串中提取固定字节数的部分。在不同的编程语言中,都有相应的函数或方法来实现这一功能。 在Python中,可以使用内置的`...

    php字符串截取函数用法分析

    PHP字符串截取函数用法分析主要讲解了在PHP中如何利用内置函数对字符串进行截取,以及如何通过自定义函数来处理特殊需求,比如混合中英文字符的截取。文章主要分为两个部分进行介绍。 首先,PHP的内置函数substr()...

    php中文字符串截取多种方法汇总

    由于中文字符的编码特性,普通的字符串截取函数并不能很好地完成任务。以上介绍的方法各有特点,开发者可以根据实际项目中遇到的具体情况,选择合适的字符串截取方法。在实际应用中,还需要注意不同编码间的兼容性...

    PHP程序设计-3期(KC016) 2.8.3字符串截取 常见问题.docx

    为了解决这个问题,我们可以使用`mb_substr()`函数,它是一个多字节安全的字符串截取函数,能够正确处理UTF-8编码或者其他多字节编码的字符串。 `mb_substr()`函数的语法是`mb_substr(string,start,length,encoding...

Global site tag (gtag.js) - Google Analytics