| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | 
							- <?php
 
- /**
 
-  * Smarty plugin
 
-  * @package Smarty
 
-  * @subpackage plugins
 
-  */
 
- /**
 
-  * Smarty escape modifier plugin
 
-  *
 
-  * Type:     modifier<br>
 
-  * Name:     escape<br>
 
-  * Purpose:  Escape the string according to escapement type
 
-  * @link http://smarty.php.net/manual/en/language.modifier.escape.php
 
-  *          escape (Smarty online manual)
 
-  * @author   Monte Ohrt <monte at ohrt dot com>
 
-  * @param string
 
-  * @param html|htmlall|url|quotes|hex|hexentity|javascript
 
-  * @return string
 
-  */
 
- function smarty_modifier_escape($string, $esc_type = 'html', $char_set = 'ISO-8859-1')
 
- {
 
-     switch ($esc_type) {
 
-         case 'html':
 
-             return htmlspecialchars($string, ENT_QUOTES, $char_set);
 
-         case 'htmlall':
 
-             return htmlentities($string, ENT_QUOTES, $char_set);
 
-         case 'url':
 
-             return rawurlencode($string);
 
-         case 'urlpathinfo':
 
-             return str_replace('%2F','/',rawurlencode($string));
 
-             
 
-         case 'quotes':
 
-             // escape unescaped single quotes
 
-             return preg_replace("%(?<!\\\\)'%", "\\'", $string);
 
-         case 'hex':
 
-             // escape every character into hex
 
-             $return = '';
 
-             for ($x=0; $x < strlen($string); $x++) {
 
-                 $return .= '%' . bin2hex($string[$x]);
 
-             }
 
-             return $return;
 
-             
 
-         case 'hexentity':
 
-             $return = '';
 
-             for ($x=0; $x < strlen($string); $x++) {
 
-                 $return .= '&#x' . bin2hex($string[$x]) . ';';
 
-             }
 
-             return $return;
 
-         case 'decentity':
 
-             $return = '';
 
-             for ($x=0; $x < strlen($string); $x++) {
 
-                 $return .= '&#' . ord($string[$x]) . ';';
 
-             }
 
-             return $return;
 
-         case 'javascript':
 
-             // escape quotes and backslashes, newlines, etc.
 
-             return strtr($string, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
 
-             
 
-         case 'mail':
 
-             // safe way to display e-mail address on a web page
 
-             return str_replace(array('@', '.'),array(' [AT] ', ' [DOT] '), $string);
 
-             
 
-         case 'nonstd':
 
-            // escape non-standard chars, such as ms document quotes
 
-            $_res = '';
 
-            for($_i = 0, $_len = strlen($string); $_i < $_len; $_i++) {
 
-                $_ord = ord(substr($string, $_i, 1));
 
-                // non-standard char, escape it
 
-                if($_ord >= 126){
 
-                    $_res .= '&#' . $_ord . ';';
 
-                }
 
-                else {
 
-                    $_res .= substr($string, $_i, 1);
 
-                }
 
-            }
 
-            return $_res;
 
-         default:
 
-             return $string;
 
-     }
 
- }
 
- /* vim: set expandtab: */
 
- ?>
 
 
  |