diff options
author | Urban Müller | 2012-03-26 15:11:39 +0000 |
---|---|---|
committer | Urban Müller | 2012-03-26 15:11:39 +0000 |
commit | b7200b739ff651a7647d2d666e3674a7fe3cb6e2 (patch) | |
tree | 6362be7d1ea725fc9371839a50c506cfebaa1ef3 /it_html.class | |
parent | 5e55c26d6ae3ab321a765fc66b7359a5a9edae8f (diff) | |
download | itools-b7200b739ff651a7647d2d666e3674a7fe3cb6e2.tar.gz itools-b7200b739ff651a7647d2d666e3674a7fe3cb6e2.tar.bz2 itools-b7200b739ff651a7647d2d666e3674a7fe3cb6e2.zip |
fixed it_html::fix_encoding
Diffstat (limited to 'it_html.class')
-rw-r--r-- | it_html.class | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/it_html.class b/it_html.class index 41d799f..71ac965 100644 --- a/it_html.class +++ b/it_html.class @@ -259,18 +259,15 @@ function _parse_args($args) # internal -function fix_encoding($string) +function fix_encoding($string, $silent = false) { if (preg_match('/[\x20-\x7f][\x80-\xff][\x20-\x7f]/', $string)) - { - it::error(array('title' => utf8_encode("incorrectly utf8-encoded: " . trim($string)), 'skipfiles' => "it_html")); - $string = utf8_encode($string); - } - else if ($string && preg_match('/[\x80-\xff]/', $string) && htmlspecialchars(utf8_decode($string), ENT_COMPAT, "utf-8") !== "") - { - it::error(array('title' => utf8_encode("doubly utf8-encoded: " . trim($string)), 'skipfiles' => "it_html")); - $string = utf8_decode($string); - } + list($string, $error) = array(utf8_encode($string), utf8_encode("incorrectly utf8-encoded: " . trim($string))); + else if ($string && preg_match('/[\x80-\xff]/', $string) && utf8_encode(utf8_decode($string)) === $string && htmlspecialchars(utf8_decode($string), ENT_COMPAT, "utf-8") !== "") + list($string, $error) = array(utf8_decode($string), utf8_encode("doubly utf8-encoded: " . trim($string))); + + if ($error && !$silent) + it::error(array('title' => $error, 'skipfiles' => "it_html")); return $string; } |