diff options
Diffstat (limited to 'libs/plugins/shared.mb_str_replace.php')
| -rw-r--r-- | libs/plugins/shared.mb_str_replace.php | 85 |
1 files changed, 51 insertions, 34 deletions
diff --git a/libs/plugins/shared.mb_str_replace.php b/libs/plugins/shared.mb_str_replace.php index 8bc156f0..ecafeb74 100644 --- a/libs/plugins/shared.mb_str_replace.php +++ b/libs/plugins/shared.mb_str_replace.php @@ -1,38 +1,55 @@ <?php +/** + * Smarty shared plugin + * + * @package Smarty + * @subpackage PluginsShared + */ +if (!function_exists('smarty_mb_str_replace')) { -if(!function_exists('smarty_mb_str_replace')) { - function smarty_mb_str_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 = &smarty_mb_str_replace($search, $replace, $string, $c); - $count += $c; - } - } elseif (is_array($search)) { - if (!is_array($replace)) { - foreach ($search as &$string) { - $subject = smarty_mb_str_replace($string, $replace, $subject, $c); - $count += $c; - } - } else { - $n = max(count($search), count($replace)); - while ($n--) { - $subject = smarty_mb_str_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; - } -} + /** + * Multibyte string replace + * + * @param string $search the string to be searched + * @param string $replace the replacement string + * @param string $subject the source string + * @param int &$count number of matches found + * @return string replaced string + * @author Rodney Rehm + */ + function smarty_mb_str_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 = &smarty_mb_str_replace($search, $replace, $string, $c); + $count += $c; + } + } elseif (is_array($search)) { + if (!is_array($replace)) { + foreach ($search as &$string) { + $subject = smarty_mb_str_replace($string, $replace, $subject, $c); + $count += $c; + } + } else { + $n = max(count($search), count($replace)); + while ($n--) { + $subject = smarty_mb_str_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; + } +} ?>
\ No newline at end of file |
