]> 91.132.146.200 Git - dolphin.git/commitdiff
check if utf8
authorBanana <banana@optimus.de>
Tue, 16 Jul 2019 13:31:50 +0000 (15:31 +0200)
committerBanana <banana@optimus.de>
Tue, 16 Jul 2019 13:31:50 +0000 (15:31 +0200)
single-functions/is-utf-8.php [new file with mode: 0644]

diff --git a/single-functions/is-utf-8.php b/single-functions/is-utf-8.php
new file mode 100644 (file)
index 0000000..e857a13
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+/**
+ *  dolphin. Collection of useful PHP skeletons.
+ *  Copyright (C) 2013-2019  Johannes 'Banana' Keßler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+ *
+ * You should have received a copy of the
+ * COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+ * along with this program.  If not, see http://www.sun.com/cddl/cddl.html
+ */
+
+/**
+ * return if the given string is utf8
+ * http://php.net/manual/en/function.mb-detect-encoding.php
+ *
+ * @param string $string
+ * @return number
+ */
+function is_utf8($string) {
+   return preg_match('%^(?:
+         [\x09\x0A\x0D\x20-\x7E]            # ASCII
+       | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
+       |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
+       | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
+       |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
+       |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
+       | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
+       |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
+   )*$%xs', $string);
+}
+
+?>