gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

shared.mb_str_replace.php (1763B)


      1 <?php
      2 /**
      3  * Smarty shared plugin
      4  *
      5  * @package    Smarty
      6  * @subpackage PluginsShared
      7  */
      8 if (!function_exists('smarty_mb_str_replace')) {
      9 
     10     /**
     11      * Multibyte string replace
     12      *
     13      * @param  string $search  the string to be searched
     14      * @param  string $replace the replacement string
     15      * @param  string $subject the source string
     16      * @param  int    &$count  number of matches found
     17      *
     18      * @return string replaced string
     19      * @author Rodney Rehm
     20      */
     21     function smarty_mb_str_replace($search, $replace, $subject, &$count = 0)
     22     {
     23         if (!is_array($search) && is_array($replace)) {
     24             return false;
     25         }
     26         if (is_array($subject)) {
     27             // call mb_replace for each single string in $subject
     28             foreach ($subject as &$string) {
     29                 $string = & smarty_mb_str_replace($search, $replace, $string, $c);
     30                 $count += $c;
     31             }
     32         } elseif (is_array($search)) {
     33             if (!is_array($replace)) {
     34                 foreach ($search as &$string) {
     35                     $subject = smarty_mb_str_replace($string, $replace, $subject, $c);
     36                     $count += $c;
     37                 }
     38             } else {
     39                 $n = max(count($search), count($replace));
     40                 while ($n --) {
     41                     $subject = smarty_mb_str_replace(current($search), current($replace), $subject, $c);
     42                     $count += $c;
     43                     next($search);
     44                     next($replace);
     45                 }
     46             }
     47         } else {
     48             $parts = mb_split(preg_quote($search), $subject);
     49             $count = count($parts) - 1;
     50             $subject = implode($replace, $parts);
     51         }
     52 
     53         return $subject;
     54     }
     55 }