diff options
author | vlakoff <vlakoff@gmail.com> | 2013-02-28 22:17:51 +0100 |
---|---|---|
committer | vlakoff <vlakoff@gmail.com> | 2013-02-28 22:17:51 +0100 |
commit | f5b4f6a156cddbed81ee4c4c6c3484507fa58ac5 (patch) | |
tree | 77ad8a0abe1c59bcdef8815b2229d2788a582a49 /system | |
parent | af493e6699ee548331a4557dba9162ec8b789fbf (diff) |
Text helper: convert_accented_characters() optimization
Thanks to static variables, array_keys() and array_values() are now executed once only.
Diffstat (limited to 'system')
-rw-r--r-- | system/helpers/text_helper.php | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index 54db14f94..b2351db95 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -363,9 +363,9 @@ if ( ! function_exists('convert_accented_characters')) */ function convert_accented_characters($str) { - static $_foreign_characters; + static $array_from, $array_to; - if ( ! is_array($_foreign_characters)) + if ( ! is_array($array_from)) { if (file_exists(APPPATH.'config/foreign_chars.php')) { @@ -379,14 +379,17 @@ if ( ! function_exists('convert_accented_characters')) if (empty($foreign_characters) OR ! is_array($foreign_characters)) { - $_foreign_characters = array(); + $array_from = array(); + $array_to = array(); + return $str; } - $_foreign_characters = $foreign_characters; + $array_from = array_keys($foreign_characters); + $array_to = array_values($foreign_characters); } - return preg_replace(array_keys($_foreign_characters), array_values($_foreign_characters), $str); + return preg_replace($array_from, $array_to, $str); } } |