| 
									
										
										
										
											2002-01-31 20:49:40 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |  * Smarty plugin | 
					
						
							|  |  |  |  * ------------------------------------------------------------ | 
					
						
							|  |  |  |  * Type:     modifier | 
					
						
							|  |  |  |  * Name:     escape | 
					
						
							|  |  |  |  * Purpose:  Escape the string according to escapement type | 
					
						
							|  |  |  |  * ------------------------------------------------------------ | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function smarty_modifier_escape($string, $esc_type = 'html') | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     switch ($esc_type) { | 
					
						
							|  |  |  |         case 'html': | 
					
						
							|  |  |  |             return htmlspecialchars($string, ENT_QUOTES); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         case 'url': | 
					
						
							|  |  |  |             return urlencode($string); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         case 'quotes': | 
					
						
							|  |  |  |             // escape unescaped single quotes
 | 
					
						
							|  |  |  |             return preg_replace("%(?<!\\\\)'%", "\\'", $string); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-02-20 20:56:53 +00:00
										 |  |  | 		case 'hex': | 
					
						
							|  |  |  | 			// escape every character into hex
 | 
					
						
							| 
									
										
										
										
											2002-02-20 22:24:32 +00:00
										 |  |  | 			for ($x=0; $x < strlen($string); $x++) { | 
					
						
							|  |  |  | 				$return .= '%' . bin2hex($string[$x]); | 
					
						
							| 
									
										
										
										
											2002-02-20 20:56:53 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 			return $return; | 
					
						
							| 
									
										
										
										
											2002-02-20 22:24:32 +00:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2002-02-20 20:56:53 +00:00
										 |  |  | 		case 'hexentity': | 
					
						
							| 
									
										
										
										
											2002-02-20 22:24:32 +00:00
										 |  |  | 			for ($x=0; $x < strlen($string); $x++) { | 
					
						
							|  |  |  | 				$return .= '&#x' . bin2hex($string[$x]) . ';'; | 
					
						
							| 
									
										
										
										
											2002-02-20 20:56:53 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 			return $return; | 
					
						
							| 
									
										
										
										
											2002-02-20 22:24:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-31 20:49:40 +00:00
										 |  |  |         default: | 
					
						
							|  |  |  |             return $string; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* vim: set expandtab: */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ?>
 |