`

PHP 截取字符串专题

    博客分类:
  • PHP
阅读更多
http://www.ccvita.com/27.html
1. 截取GB2312中文字符串
<?php
< ?php 
//截取中文字符串
function mysubstr($str, $start, $len) {
    $tmpstr = "";
    $strlen = $start + $len;
    for($i = 0; $i < $strlen; $i++) {
        if(ord(substr($str, $i, 1)) > 0xa0) {
            $tmpstr .= substr($str, $i, 2);
            $i++;
        } else
            $tmpstr .= substr($str, $i, 1);
    }
    return $tmpstr;
}
?>

2. 截取utf8编码的多字节字符串
<?php
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
                       '$1',$str);
}
?>

3. UTF-8、GB2312都支持的汉字截取函数
<?php
/* 
Utf-8、gb2312都支持的汉字截取函数 
cut_str(字符串, 截取长度, 开始长度, 编码); 
编码默认为 utf-8 
开始长度默认为 0 
*/ 
 
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; 
    } 
} 
 
$str = "abcd需要截取的字符串"; 
echo cut_str($str, 8, 0, 'gb2312'); 
?>

4. BugFree 的字符截取函数
<?php 
/** 
 * @package     BugFree 
 * @version     $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ 
 * 
 * 
 * Return part of a string(Enhance the function substr()) 
 * 
 * @author                  Chunsheng Wang <wwccss@263.net> 
 * @param string  $String  the string to cut. 
 * @param int     $Length  the length of returned string. 
 * @param booble  $Append  whether append "...": false|true 
 * @return string           the cutted string. 
 */ 
function sysSubStr($String,$Length,$Append = false) 
{ 
    if (strlen($String) < = $Length ) 
    { 
        return $String; 
    } 
    else 
    { 
        $I = 0; 
        while ($I < $Length) 
        { 
            $StringTMP = substr($String,$I,1); 
            if ( ord($StringTMP) >=224 ) 
            { 
                $StringTMP = substr($String,$I,3); 
                $I = $I + 3; 
            } 
            elseif( ord($StringTMP) >=192 ) 
            { 
                $StringTMP = substr($String,$I,2); 
                $I = $I + 2; 
            } 
            else 
            { 
                $I = $I + 1; 
            } 
            $StringLast[] = $StringTMP; 
        } 
        $StringLast = implode("",$StringLast); 
        if($Append) 
        { 
            $StringLast .= "..."; 
        } 
        return $StringLast; 
    } 
} 
 
$String = "CodeBit.cn -- 简单、精彩、通用"; 
$Length = "18"; 
$Append = false; 
echo sysSubStr($String,$Length,$Append); 
?>
分享到:
评论

相关推荐

    php简单截取字符串代码示例

    首先,我们要了解PHP中字符串长度的计算方法,以及如何根据需要截取字符串。在字符串的处理过程中,需要考虑到字符集的影响,特别是UTF-8编码下的多字节字符(如中文、日文、韩文等)问题。在UTF-8编码下,一个中文...

    php截取指定2个字符之间字符串的方法

    而 `substr()` 函数则用于截取字符串的指定部分。 为了更好地理解如何使用这两个函数,我们可以创建一个自定义的函数 `getNeedBetween()`,它接受三个参数:`$kw1` 为源字符串,`$mark1` 和 `$mark2` 分别为需要...

    PHP针对字符串开头和结尾的判断方法

    - 使用 substr() 截取字符串时,需要确保不会超出原字符串的长度,否则会得到意外的结果。 - 在判断字符串开头时,如果目标字符串为空,那么任何字符串都会以空字符串开头。 - 使用 substr_compare() 时,可以根据...

    PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】

    示例代码展示了如何截取字符串`$s`中的特定部分。 6. 字符串的比较 字符串比较的函数是`strcmp()`。 - `strcmp()`函数比较两个字符串,如果字符串相等则返回0,如果第一个字符串小于第二个字符串则返回负值,...

    PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法

    PHP是一种广泛使用的开源服务器端脚本...希望了解更多的PHP字符串操作技巧,请访问《PHP字符串(string)用法总结》专题,里面涵盖了更多关于PHP字符串操作的知识和实例分析,相信对进行PHP程序设计的朋友会有所帮助。

    thinkPHP内置字符串截取函数用法详解

    ThinkPHP框架作为PHP开发中广泛使用的MVC框架之一,其内置的字符串处理函数功能强大而丰富,尤其在模板引擎中,内置的字符串截取函数让开发者在视图层的字符串处理变得更加灵活和方便。本文将详细介绍ThinkPHP内置的...

    PHP获取数组表示的路径方法分析【数组转字符串】 <font color=red>原创</font>

    文章最后推荐了相关的专题,如《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP字符串(string)用法总结》等,都是对PHP数组和字符串操作深入学习的好资源。同时,也提到了关于PHP的其他学习...

    PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)

    如果你需要进一步了解PHP字符串处理,可以查阅《php字符串(string)用法总结》这样的专题,其中包含了大量的字符串操作示例和技巧,对于提升PHP编程技能十分有帮助。 总的来说,`strnatcmp()` 函数是PHP中一个强大的...

    牛人的PHP学习总结笔记

    1. **字符串操作**:拼接、截取、替换、格式化等。 2. **正则表达式**:模式匹配、搜索与替换,用于复杂的文本处理任务。 #### PHP专题相关 1. **文件与目录操作**:读写文件、目录遍历、上传文件处理。 2. **会话...

    php简单统计中文个数的方法

    在PHP编程语言中,统计字符串长度时,遇到中文字符会涉及到字符编码的...对于进一步学习,可以查阅更多关于PHP字符串处理的专题,如PHP字符串(string)用法总结、PHP数组(Array)操作技巧大全等,以提升自己的编程技能。

    smarty中改进truncate使其支持中文的方法

    在使用Smarty时,经常会用到各种内置的修饰符(modifier)来处理数据,例如truncate修饰符用于截取字符串并添加省略符号。然而,默认情况下smarty的truncate修饰符并不支持中文字符,因为它使用了普通的substr函数,...

    php使用strip_tags()去除html标签仍有空白的解决方法

    最后,文章提到了一系列PHP相关专题,比如“php正则表达式用法总结”、“php字符串(string)用法总结”、“PHP数组(Array)操作技巧大全”等,这些专题能够帮助开发者更全面地掌握PHP语言的各种技巧和用法。...

    PHP截取IE浏览器并缩小原图的方法

    最后,文章提及了几个PHP相关专题,包括日期时间用法、面向对象编程、字符串处理、数据库操作等。这些内容涉及了PHP编程的不同方面,对于深入学习PHP编程和解决更复杂的编程问题提供了参考。读者可以在掌握基本的...

    php使用number_format函数截取小数的方法分析

    此外,文章还提供了一些PHP专题链接,涵盖了PHP的各个方面,比如数学运算、操作Office文档、数组操作、排序算法、遍历算法、数据结构与算法、正则表达式、字符串处理、数据库操作等。这些都是PHP开发者在日常工作中...

    PHP7常量数组用法分析

    对于PHP中的字符串操作,也有其专门的用法总结,包括字符串的拼接、截取、替换等操作。在涉及到MySQL数据库操作时,更需要掌握php+mysql数据库操作的入门知识以及一些常见的数据库操作技巧,以便能够有效地管理项目...

    PHP简单获取随机数的常用方法小结

    最后,使用implode()函数将数组元素合并成字符串,并通过array_slice()函数截取指定长度的子数组来控制生成密码的长度。 除了编码技巧外,还可以借助一些在线工具来生成随机数字或字符串。例如,文中提到的在线随机...

    PHP获取文件扩展名的方法实例总结

    strrpos() 函数定位最后一个点号(`.`)的位置,然后使用 substr() 函数从这个位置开始截取到字符串末尾,这样获取的也是文件的扩展名。 第三种方法与第一种类似,不过使用了 explode() 和 array_pop() 函数。array...

    php实现替换手机号中间数字为*号及隐藏IP最后几位的方法

    此外,PHP还提供了截取字符串的方法来达到相同的目的。具体实现为使用`substr`函数截取手机号的前三位和最后四位,中间部分用`***`替换。这种方法虽然简单直接,但同样能够达到隐藏手机号中间部分的目的。 其次,...

Global site tag (gtag.js) - Google Analytics