| | |
| | | |
| | | |
| | | /** |
| | | * Similar function as in_array() but case-insensitive |
| | | * Similar function as in_array() but case-insensitive with multibyte support. |
| | | * |
| | | * @param string $needle Needle value |
| | | * @param array $heystack Array to search in |
| | | * @param string $needle Needle value |
| | | * @param array $heystack Array to search in |
| | | * |
| | | * @return boolean True if found, False if not |
| | | */ |
| | | function in_array_nocase($needle, $haystack) |
| | | { |
| | | $needle = mb_strtolower($needle); |
| | | foreach ((array)$haystack as $value) { |
| | | if ($needle === mb_strtolower($value)) { |
| | | return true; |
| | | // use much faster method for ascii |
| | | if (is_ascii($needle)) { |
| | | foreach ((array) $haystack as $value) { |
| | | if (strcasecmp($value, $needle) === 0) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | else { |
| | | $needle = mb_strtolower($needle); |
| | | foreach ((array) $haystack as $value) { |
| | | if ($needle === mb_strtolower($value)) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | array('-stable', '-git'), |
| | | array('.0', '.99'), |
| | | $version); |
| | | } |
| | | |
| | | /** |
| | | * mbstring replacement functions |
| | | */ |
| | | if (!extension_loaded('mbstring')) |
| | | { |
| | | function mb_strlen($str) |
| | | { |
| | | return strlen($str); |
| | | } |
| | | |
| | | function mb_strtolower($str) |
| | | { |
| | | return strtolower($str); |
| | | } |
| | | |
| | | function mb_strtoupper($str) |
| | | { |
| | | return strtoupper($str); |
| | | } |
| | | |
| | | function mb_substr($str, $start, $len=null) |
| | | { |
| | | return substr($str, $start, $len); |
| | | } |
| | | |
| | | function mb_strpos($haystack, $needle, $offset=0) |
| | | { |
| | | return strpos($haystack, $needle, $offset); |
| | | } |
| | | |
| | | function mb_strrpos($haystack, $needle, $offset=0) |
| | | { |
| | | return strrpos($haystack, $needle, $offset); |
| | | } |
| | | } |
| | | |
| | | /** |