summaryrefslogtreecommitdiff
path: root/it_html.class
diff options
context:
space:
mode:
authorUrban Müller2012-03-26 15:11:39 +0000
committerUrban Müller2012-03-26 15:11:39 +0000
commitb7200b739ff651a7647d2d666e3674a7fe3cb6e2 (patch)
tree6362be7d1ea725fc9371839a50c506cfebaa1ef3 /it_html.class
parent5e55c26d6ae3ab321a765fc66b7359a5a9edae8f (diff)
downloaditools-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.class17
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;
}