aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/utf
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2006-10-13 22:10:18 +0000
committerNils Adermann <naderman@naderman.de>2006-10-13 22:10:18 +0000
commitc65048bd9132175e9ba780457fdf00438932c5fe (patch)
treef664b7b45b4fcd0bea7b1e41e03c03c683e03d6e /phpBB/includes/utf
parent23d25ddcd169578b8fdf9ddbb35b5041ffbfd7ac (diff)
downloadforums-c65048bd9132175e9ba780457fdf00438932c5fe.tar
forums-c65048bd9132175e9ba780457fdf00438932c5fe.tar.gz
forums-c65048bd9132175e9ba780457fdf00438932c5fe.tar.bz2
forums-c65048bd9132175e9ba780457fdf00438932c5fe.tar.xz
forums-c65048bd9132175e9ba780457fdf00438932c5fe.zip
- introducing clean usernames, needs to be tested more, I'm not sure I didn't miss anything
- homograph list should probably be extended git-svn-id: file:///svn/phpbb/trunk@6494 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/utf')
-rw-r--r--phpBB/includes/utf/utf_tools.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/phpBB/includes/utf/utf_tools.php b/phpBB/includes/utf/utf_tools.php
index 1bcd92e75f..cb3e3b69ac 100644
--- a/phpBB/includes/utf/utf_tools.php
+++ b/phpBB/includes/utf/utf_tools.php
@@ -928,4 +928,39 @@ function utf8_case_fold($text, $option = 'full')
return $text;
}
+function utf8_clean_string($text)
+{
+ $text = utf8_case_fold($text);
+
+ if (!class_exists('utf_normalizer'))
+ {
+ global $phpbb_root_path, $phpEx;
+ include($phpbb_root_path . 'includes/utf/utf_normalizer.' . $phpEx);
+ }
+
+ $text = utf_normalizer::nfc($text);
+
+ static $homographs = array(
+ // cyrllic
+ "\xD0\xB0" => "\x61",
+ "\xD0\xB5" => "\x65",
+ "\xD0\xBE" => "\x6F",
+ "\xD1\x80" => "\x70",
+ "\xD1\x81" => "\x63",
+ "\xD1\x83" => "\x79",
+ "\xD1\x85" => "\x78",
+ "\xD1\x95" => "\x73",
+ "\xD1\x96" => "\x69",
+ "\xD1\x98" => "\x6A",
+ "\xD2\xBB" => "\x68",
+ // greek
+ "\xCE\xB1" => "\x61",
+ "\xCE\xBF" => "\x6F",
+ );
+
+ $text = strtr($text, $homographs);
+
+ return $text;
+}
+
?> \ No newline at end of file