| 
									
										
										
										
											2011-01-03 23:19:22 +00:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Smarty shared plugin | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @package Smarty | 
					
						
							|  |  |  |  * @subpackage PluginsShared | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | if (!function_exists('smarty_mb_str_replace')) { | 
					
						
							| 
									
										
										
										
											2011-01-03 23:19:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * 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; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-01-03 23:19:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-16 14:19:56 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2011-01-03 23:19:22 +00:00
										 |  |  | ?>
 |