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); 
	} 
} 

发表评论