mb extends
additional multibyte string functions used throughout WackoWiki
Functions
-
utf8_count_chars()
-
utf8_ltrim()
-
utf8_rtrim()
-
utf8_str_pad()
-
utf8_substr_replace()
-
utf8_trim()
-
utf8_ucfirst()
-
utf8_ucwords()
-
utf8_wordwrap()
Unused
<?php
function utf8_strtr($str, $from, $to)
{
$keys = [];
$values = [];
if (!is_array($from))
{
preg_match_all('/./u', $from, $keys);
preg_match_all('/./u', $to, $values);
$mapping = array_combine($keys[0], $values[0]);
}
else
{
$mapping = $from;
}
return strtr($str, $mapping);
}
function mb_strtr($str, $from, $to ,$chars = 'undefined')
{
$chars = mb_internal_encoding();
$_str = '';
$len = mb_strlen($str, $chars);
for($i = 0; $i < $len; $i++)
{
$flag = false;
for ($q = 0, $sf = mb_strlen($from, $chars), $st = mb_strlen($to, $chars); $q < $sf && $q < $st; $q++)
{
if (mb_substr($str, $i, 1, $chars) == mb_substr($from, $q, 1, $chars))
{
$_str = $_str . mb_substr($to, $q, 1, $chars);
$flag = true;
break;
}
}
if(!$flag)
{
$_str = $_str . mb_substr($str, $i, 1, $chars);
}
}
return $_str;
}
function mb_replace($search, $replace, $subject, &$count=0)
{
if (!is_array($search) && is_array($replace))
{
return false;
}
if (is_array($subject))
{
// call mb_replace for each single string in $subject
foreach ($subject as &$string)
{
$string = &mb_replace($search, $replace, $string, $c);
$count += $c;
}
}
else if (is_array($search))
{
if (!is_array($replace))
{
foreach ($search as &$string)
{
$subject = mb_replace($string, $replace, $subject, $c);
$count += $c;
}
}
else
{
$n = max(count($search), count($replace));
while ($n--)
{
$subject = mb_replace(current($search), current($replace), $subject, $c);
$count += $c;
next($search);
next($replace);
}
}
}
else
{
$parts = mb_split(preg_quote($search), $subject);
$count = count($parts) - 1;
$subject = implode($replace, $parts);
}
return $subject;
}