Optimizing Sanitize::html() by caching default charset. Closes #496. Also charset passed in $options parameter now takes precedence over the default value obtained from app's config value 'App.encoding'

This commit is contained in:
ADmad 2010-03-23 00:39:24 +05:30
parent 817ebf5ec8
commit 209af202ec

View file

@ -97,9 +97,16 @@ class Sanitize {
* @static
*/
function html($string, $options = array()) {
static $defaultCharset = false;
if ($defaultCharset === false) {
$defaultCharset = Configure::read('App.encoding');
if ($defaultCharset === null) {
$defaultCharset = 'UTF-8';
}
}
$default = array(
'remove' => false,
'charset' => 'UTF-8',
'charset' => $defaultCharset,
'quotes' => ENT_QUOTES
);
@ -108,11 +115,8 @@ class Sanitize {
if ($options['remove']) {
$string = strip_tags($string);
}
$encoding = Configure::read('App.encoding');
if (empty($encoding)) {
$encoding = $options['charset'];
}
return htmlentities($string, $options['quotes'], $encoding);
return htmlentities($string, $options['quotes'], $options['charset']);
}
/**