From: <sy...@us...> - 2003-09-10 13:51:30
|
Update of /cvsroot/tikiwiki/tiki/lib In directory sc8-pr-cvs1:/tmp/cvs-serv31210/lib Modified Files: Tag: release_eta_carinea_rc1 tikilib.php Log Message: merge from head: utf8Substr bugs Index: tikilib.php =================================================================== RCS file: /cvsroot/tikiwiki/tiki/lib/tikilib.php,v retrieving revision 1.196.2.43 retrieving revision 1.196.2.44 diff -u -d -r1.196.2.43 -r1.196.2.44 --- tikilib.php 6 Sep 2003 18:06:00 -0000 1.196.2.43 +++ tikilib.php 10 Sep 2003 13:51:25 -0000 1.196.2.44 @@ -4529,38 +4529,6 @@ ob_end_clean(); return $retval; } - /* \brief substr with a utf8 string - works only with $start and $length positive ou nuls - * This function is the same as substr but works with multibyte - * The first byte of a multibyte sequence that represents a non-ASCII character is always in the range 0xC0 to 0xFD and it indicates how many bytes follow for this character. - * All further bytes in a multibyte sequence are in the range 0x80 to 0xBF. - */ - function utf8Substr($str, $start, $len = ''){ - if (function_exists('mb_subtr')) /* php is compile with the mulitbyte support */ - return mb_substr($string, $start, $len); - $limit = strlen($str); - for ($s = 0; $start > 0;--$start) {// found the real start - if ($s >= $limit) - break; - if ($str[$s] <= "\x7F") - ++$s; - else - while ($str[$s] > "\x7F") - ++$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 - while ($str[$e] > "\x7F") - ++$e; - } - return substr($str, $s, $e - $s); - } } ?> |