A purely static UTF-8 Helper based on mb_string and ext-intl
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