网站制作学习网PHP→正文:php截取字符串
字体:

php截取字符串

PHP 2009/12/31 16:44:28  点击:不统计


php截取字符串,当php截取字符串的时候是采用的bit位截取,当截取中文显示的时候比如截取1个,截取不出来,显示出来是个?,于是找到下面的函数
新增下面的字符串截取,因为第一个字符串截取部分字符出错。后来在网上有找了一个
第一种PHP字符串截取
function cut($Str, $Length) {//$Str为截取字符串,$Length为需要截取的长度
global $s;
$i = 0;
$l = 0;
$ll = strlen($Str);
$s = $Str;
$f = true;
while ($i <= $ll) {
if (ord($Str{$i}) < 0x80) {
$l++; $i++;
} else if (ord($Str{$i}) < 0xe0) {
$l++; $i += 2;
} else if (ord($Str{$i}) < 0xf0) {
$l += 2; $i += 3;
} else if (ord($Str{$i}) < 0xf8) {
$l += 1; $i += 4;
} else if (ord($Str{$i}) < 0xfc) {
$l += 1; $i += 5;
} else if (ord($Str{$i}) < 0xfe) {
$l += 1; $i += 6;
}
if (($l >= $Length - 1) && $f) {
$s = substr($Str, 0, $i);
$f = false;
}

if (($l > $Length) && ($i < $ll)) {
$s = $s . '...'; break; //如果进行了截取,字符串末尾加省略符号“...”
}
}
return $s;
}
转载请注明www.forasp.cn
第二种字符串接却
function msubstr($str,$len) {
 $start=0;
    $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;
}
 


原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n

·上一篇:sqlserver数据库角色 >>    ·下一篇:php判断0 >>
推荐文章
最新文章