Remove 4 byte utf-8 characters in MessageUtil::stripCrap()
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 10 Dec 2013 21:06:24 +0000 (22:06 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 10 Dec 2013 21:06:24 +0000 (22:06 +0100)
wcfsetup/install/files/lib/util/MessageUtil.class.php

index 1b3b31aea712dfc78d500f1faa0ba51f05b5363f..04601f006a1fda1aa7b9efd2b806092b9c32ec7a 100644 (file)
@@ -32,8 +32,9 @@ class MessageUtil {
                // unify new lines
                $text = StringUtil::unifyNewlines($text);
                
-               // remove emoji (MySQL 5.1 does not support them)
-               $text = preg_replace('~\xF0\x9F[\x80-\xBF][\x80-\xBF]~', '', $text);
+               // remove 4 byte utf-8 characters as MySQL < 5.5 does not support them
+               // see http://stackoverflow.com/a/16902461/782822
+               $text = $text = preg_replace('/[\xF0-\xF7].../s', '', $text);
                
                // remove control characters
                $text = preg_replace('~[\x00-\x08\x0B-\x1F\x7F]~', '', $text);