public static function iconv($inCharset, $outCharset, $str)
{
- if ('' === $str .= '') {
+ $str = (string) $str;
+ if ('' === $str) {
return '';
}
$inCharset = 'iso-8859-1';
}
- if ('//translit' === substr($outCharset, -10)) {
- $translit = '//TRANSLIT';
- $outCharset = substr($outCharset, 0, -10);
- }
+ do {
+ $loop = false;
- if ('//ignore' === substr($outCharset, -8)) {
- $ignore = '//IGNORE';
- $outCharset = substr($outCharset, 0, -8);
- }
+ if ('//translit' === substr($outCharset, -10)) {
+ $loop = $translit = true;
+ $outCharset = substr($outCharset, 0, -10);
+ }
- if ('//translit' === substr($inCharset, -10)) {
- $inCharset = substr($inCharset, 0, -10);
- }
- if ('//ignore' === substr($inCharset, -8)) {
- $inCharset = substr($inCharset, 0, -8);
- }
+ if ('//ignore' === substr($outCharset, -8)) {
+ $loop = $ignore = true;
+ $outCharset = substr($outCharset, 0, -8);
+ }
+ } while ($loop);
+
+ do {
+ $loop = false;
+
+ if ('//translit' === substr($inCharset, -10)) {
+ $loop = true;
+ $inCharset = substr($inCharset, 0, -10);
+ }
+
+ if ('//ignore' === substr($inCharset, -8)) {
+ $loop = true;
+ $inCharset = substr($inCharset, 0, -8);
+ }
+ } while ($loop);
if (isset(self::$alias[ $inCharset])) {
$inCharset = self::$alias[ $inCharset];
return false;
}
- $s .= '';
+ $s = (string) $s;
$slen = self::iconv_strlen($s, 'utf-8');
$start = (int) $start;
return substr($u, 0, $j);
}
- private static function mapToUtf8(&$result, $map, $str, $ignore)
+ private static function mapToUtf8(&$result, array $map, $str, $ignore)
{
$len = strlen($str);
for ($i = 0; $i < $len; ++$i) {
return true;
}
- private static function mapFromUtf8(&$result, $map, $str, $ignore, $translit)
+ private static function mapFromUtf8(&$result, array $map, $str, $ignore, $translit)
{
$ulenMask = self::$ulenMask;
$valid = self::$isValidUtf8;
return true;
}
- private static function qpByteCallback($m)
+ private static function qpByteCallback(array $m)
{
return '='.strtoupper(dechex(ord($m[0])));
}