Andy's Blog » » mb_substr修正函数

mb_substr修正函数

用于不支持mb_substr的地方

// Patch in multibyte support
if (!function_exists('mb_substr')) {
    
function mb_substr($str, $start, $len = '', $encoding="UTF-8"){
        
$limit = strlen($str);
 
        
for ($s = 0; $start > 0;--$start) {// found the real start
            
if ($s >= $limit)
                
break;
 
            
if ($str[$s] <= "\x7F")
                ++
$s;
            
else {
                ++
$s; // skip length
 
                
while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")
                    ++
$s;
            
}
        
}
 
        
if ($len == '')
            
return substr($str, $s);
        
else
            
for ($e = $s; $len > 0; --$len) {//found the real end
                
if ($e >= $limit)
                    
break;
 
                
if ($str[$e] <= "\x7F")
                    ++
$e;
                
else {
                    ++
$e;//skip length
 
                    
while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)
                        ++
$e;
                
}
            
}
 
        
return substr($str, $s, $e - $s);
    
}
}

Incoming search terms:

Tags: 修正, mb_substr, 函数

本文地址: http://www.21andy.com/new/20080528/1132.html

1 评论 to “PHP开源CMS之MODx”

  1. DDM 于 2008-10-16 14:59:01 发表:

    谢谢,正在找