nashev@mail.ru
When site using mbstring overloading of functions,
function strlen return charecter count in given string
but not byte count!
And as result, pclzip library reports that bad format
archive after comparing, for example, readed block and
hiz length.
To resolve this problem you can use, for example,
functions like this:
<?php
function ByteCount($s) {
$has_mbstring = extension_loaded('mbstring')
||@dl(PHP_SHLIB_PREFIX.'mbstring.'.PHP_SHLIB_SUFFIX);
$has_mb_shadow = (int) ini_get('mbstring.
func_overload');
if ($has_mbstring && ($has_mb_shadow & 2) ) {
$size = mb_strlen($s,'latin1');
} else {
$size = strlen($s);
}
return $size;
}
function ByteSubstr($s, $start, $length) {
$has_mbstring = extension_loaded('mbstring')
||@dl(PHP_SHLIB_PREFIX.'mbstring.'.PHP_SHLIB_SUFFIX);
$has_mb_shadow = (int) ini_get('mbstring.
func_overload');
if ($has_mbstring && ($has_mb_shadow & 2) ) {
$s2 = mb_substr($s, $start, $length, 'latin1');
} else {
$s2 = substr($s, $start, $length);
}
return $s2;
}
php?>