fab2s / utf8
基于 mb_string 和 ext-intl 的纯静态 UTF8 辅助工具
Requires
- php: ^7.2|^8.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ~7.0|~8.0
Suggests
- ext-intl: To use Utf8 Normalization
This package is auto-updated.
Last update: 2024-08-27 22:43:57 UTC
README
这是一个基于 mb_string 和 ext-intl 的纯静态 UTF-8 辅助工具
当然,这并不是什么新东西,市面上有更好的选择,但这个工具体积小巧,功能强大,而且没有太多噪音
安装
可以使用 composer 安装 Utf8
composer require "fab2s/utf8"
Utf8
也包含在 OpinHelper 中,该工具包包含多个“瑞士军刀”级别的辅助工具,涵盖了一些最令人烦恼的 PHP 编程方面,例如 UTF8 字符串操作、高精度数学或正确锁定文件
如果您需要使用低于 7.1 的 PHP,您仍然可以使用 OpinHelper 0.x
先决条件
Utf8
需要 mb_string,ext-intl 会被自动检测并在可用时用于 UTF-8 规范化
实际应用
Utf8
提供了大多数原生字符串函数的 UTF-8 支持替代方案
-
Utf8::strrpos(string string $str, string $needle, int $offset = null):int|false
UTF-8 意识的 strrpos() 替代
-
Utf8::strpos(string $str, string $needle, int $offset = 0):int|false
UTF-8 意识的 strpos() 替代
-
Utf8::strtolower(string $str):string
UTF-8 意识的 strtolower() 替代
-
Utf8::strtoupper(string $str):string
UTF-8 意识的 strtoupper() 替代
-
Utf8::substr(string $str, int $offset, int $length = null):string
UTF-8 意识的 substr() 替代
-
Utf8::strlen(string $str):int
UTF-8 意识的 strlen() 替代
-
Utf8::ucfirst(string $str):string
UTF-8 意识的 ucfirst() 替代
-
Utf8::ucwords(string $str):string
UTF-8 意识的 ucwords() 替代
-
Utf8::ord(string $chr):int|false
UTF-8 意识的 ord() 替代
-
Utf8::chr(int $num):string|false
UTF-8 意识的 chr() 替代
还有一些简单的实用方法
-
Utf8::normalize(string $string, int $canonicalForm = self::NORMALIZE_NFC):string
UTF-8 ext-intl Normalizer
警告:如果主机上未安装
ext-intl
,则此方法将不起作用。这意味着您需要使用Utf8::normalizerSupport
或将ext-intl
添加到项目composer.json
文件的要求中,以确保其存在 -
Utf8::hasUtf8(string $string):bool
检查输入字符串是否包含 UTF-8
-
Utf8::isUtf8(string $string):bool
检查输入字符串是否是有效的 UTF-8
-
Utf8::replaceMb4(string $string, string $replace = ''):string
-
Utf8::normalizerSupport(bool $disable = false):bool
检查是否可用 Normalizer 或禁用 Normalizer 支持
需求
Utf8
已在 php 7.2、7.3、7.4、8.0 和 8.1 上进行测试
贡献
欢迎贡献,请随时提出问题和提交 pull request。
许可协议
Utf8
是开源软件,许可协议为 MIT 许可协议