文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于PHP的字串截取[substr()扩展]

关于PHP的字串截取[substr()扩展]

时间:2006-10-18  来源:qiyu15555

总结一下吧,关于PHP的字串截取[substr()扩展]
PHP提供了很多很实用的函数,PHP在字符串操作上有很深的造诣,这段时间这方面用应用比较多,总结一下吧。
下面是手册上的描述:
substr -- Return part of a string
Description
string substr ( string string, int start [, int length])
   这可能是我们用得最多的一个函数了,它接收一个字串,再返回一个字串,中间根据参数限定返回的长度。但是很多新手用的时候可能会遇到一点麻烦
因为它对中文的支持不大好,时不时会出现比如一个?类似的结果,这样我们就需要对其进行扩展了。
   下面我给出我常用的两个函数吧!我加上了比较详尽的注释(两种),大家可以多了解一些汉字编码方面的知识。
第一种:
function substr_for($str,$start,$len)    //str就是要进行截取字串
{
    $totlelength = strlen($str);
   
    //特例情况
    if ($len == null) $len = $totlelength;
    if ($len ==0) return "";
    if ($len >= $totlelength && $start == 0 ) return $str;
    if ($start > $totlelength) return "";
    //分析$start
    if ($start 0时的定位.
    {
        if ( abs($start) >= $totlelength ) $start = 0;
        else $start = $totlelength - abs($start);
     }
    //确定起始位置,当起始位拆分某汉字时,返回值包含此汉字.
    if ($start > 0)
    {
        $i = $start-1;
        $flag = -1;
        while ($i >= 0)
        {
            if ( ord(substr($str,$i,1)) > 160)
            {
               $flag = -1*$flag;
            }
            else break;
            $i--;
        }
        if($flag==1)
        {
            $start = $start - 1;
            $len++;  //保证不位移.
        }
    }
    $str = substr($str,$start);//截除字符串$str的$start位前的字符
    $totlelength = strlen($str);
    //确定结束位置,当结束位拆分某汉字时,返回值不包含此汉字.
    if ($len= 0){
        if (ord(substr($str,$i,1))>160){
            $flag=-1*$flag;
        }else break;
        $i--;
  }
    if($flag == 1)$len=$len-1;
    $subit=substr($str,0,$len);
    return $subit;
}
第二种:
function substrgb($str,$start,$len){
    for($i=0;$i=161 && ord($str[$i])=161 && ord($str[$i+1])=$start&&$i
如果有更好的,希望大家分享一下,可以直接贴在下面,要先COPY到NOTEPAD,然后再COPY出来贴上,不然发布不了。这么久没有更新了发现还是有很多朋来看这个BLOG,进后台才知又改版了。


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载