summaryrefslogtreecommitdiff
path: root/libs/plugins/shared.mb_str_replace.php
blob: 8bc156f08134033af7a9b0b5124951ad6635a793 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

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; 
  }
}

?>