fab2s/utf8

基于 mb_string 和 ext-intl 的纯静态 UTF8 辅助工具

1.0.1 2021-06-16 09:31 UTC

This package is auto-updated.

Last update: 2024-08-27 22:43:57 UTC


README

Build Status Total Downloads Monthly Downloads Latest Stable Version Scrutinizer Code Quality PRs Welcome License

这是一个基于 mb_stringext-intl 的纯静态 UTF-8 辅助工具

当然,这并不是什么新东西,市面上有更好的选择,但这个工具体积小巧,功能强大,而且没有太多噪音

安装

可以使用 composer 安装 Utf8

composer require "fab2s/utf8"

Utf8 也包含在 OpinHelper 中,该工具包包含多个“瑞士军刀”级别的辅助工具,涵盖了一些最令人烦恼的 PHP 编程方面,例如 UTF8 字符串操作、高精度数学或正确锁定文件

如果您需要使用低于 7.1 的 PHP,您仍然可以使用 OpinHelper 0.x

先决条件

Utf8 需要 mb_stringext-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

    替换所有 Utf8Mb4 字符(即大多数 emoji 表情符号)

  • Utf8::normalizerSupport(bool $disable = false):bool

    检查是否可用 Normalizer 或禁用 Normalizer 支持

需求

Utf8 已在 php 7.2、7.3、7.4、8.0 和 8.1 上进行测试

贡献

欢迎贡献,请随时提出问题和提交 pull request。

许可协议

Utf8 是开源软件,许可协议为 MIT 许可协议