A purely static UTF-8 Helper based on mb_string and ext-intl
For sure this is not new, and there is better out there, but this is small and does the job without a lot of noise
Utf8
can be installed using composer:
composer require "fab2s/utf8"
Utf8
is also included in OpinHelper which packages several bellow "Swiss Army Knife" level Helpers covering some of the most annoying aspects of php programing, such as UTF8 string manipulation, high precision Mathematics or properly locking a file
Should you need to work with php bellow 7.1, you can still use OpinHelper 0.x
Utf8
requires mb_string, ext-intl is auto detected and used when available for UTF-8 Normalization
Utf8
offers replacement for most native string functions with support for UTF-8:
-
Utf8::strrpos(string string $str, string $needle, int $offset = null):int|false
UTF-8 aware strrpos() replacement
-
Utf8::strpos(string $str, string $needle, int $offset = 0):int|false
UTF-8 aware strpos() replacement
-
Utf8::strtolower(string $str):string
UTF-8 aware strtolower() replacement
-
Utf8::strtoupper(string $str):string
UTF-8 aware strtoupper() replacement
-
Utf8::substr(string $str, int $offset, int $length = null):string
UTF-8 aware substr() replacement
-
Utf8::strlen(string $str):int
UTF-8 aware strlen() replacement
-
Utf8::ucfirst(string $str):string
UTF-8 aware ucfirst() replacement
-
Utf8::ucwords(string $str):string
UTF-8 aware ucwords() replacement
-
Utf8::ord(string $chr):int|false
UTF-8 aware ord() replacement
-
Utf8::chr(int $num):string|false
UTF-8 aware chr() replacement
And some simple utility methods:
-
Utf8::normalize(string $string, int $canonicalForm = self::NORMALIZE_NFC):string
UTF-8 ext-intl Normalizer
WARNING: This method will do nothing in case
ext-intl
is not installed on the host This means it is up to you to make sure about it usingUtf8::normalizerSupport
or by addingext-intl
as a requirement to your project'scomposer.json
file -
Utf8::hasUtf8(string $string):bool
Tells if the input string contains some UTF-8
-
Utf8::isUtf8(string $string):bool
Tells if the input string is valid UTF-8
-
Utf8::replaceMb4(string $string, string $replace = ''):string
-
Utf8::normalizerSupport(bool $disable = false):bool
Tells if Normalizer is available or disable Normalizer support
Utf8
is tested against php 7.2, 7.3, 7.4, 8.0 and 8.1
Contributions are welcome, do not hesitate to open issues and submit pull requests.
Utf8
is open-sourced software licensed under the MIT license