commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-old / civicrm / packages / Smarty / plugins / shared.escape_special_chars.php
1 <?php
2 /**
3 * Smarty shared plugin
4 * @package Smarty
5 * @subpackage plugins
6 */
7
8
9 /**
10 * escape_special_chars common function
11 *
12 * Function: smarty_function_escape_special_chars<br>
13 * Purpose: used by other smarty functions to escape
14 * special chars except for already escaped ones
15 * @author Monte Ohrt <monte at ohrt dot com>
16 * @param string
17 * @return string
18 */
19 function smarty_function_escape_special_chars($string)
20 {
21 if(!is_array($string)) {
22 $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
23 $string = htmlspecialchars($string);
24 $string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string);
25 }
26 return $string;
27 }
28
29 /* vim: set expandtab: */
30
31 ?>