fab2s / strings
一个纯静态字符串助手,用于处理更高级的utf8字符串操作
Requires
- php: ^7.1|^8.0
- ext-mbstring: *
- fab2s/bom: ^1.0
- fab2s/utf8: ^1.0
Requires (Dev)
- phpunit/phpunit: ~7.0|~8.0
This package is auto-updated.
Last update: 2024-08-27 22:46:35 UTC
README
一个纯静态字符串助手,用于处理更高级的utf8字符串操作
安装
Strings
可以通过 composer 安装
composer require "fab2s/strings"
Strings
也包含在 OpinHelper 中,后者打包了多个“瑞士军刀”级别的助手,涵盖了PHP编程中一些最令人烦恼的问题,例如UTF8字符串操作、高精度数学或正确锁定文件
如果您需要使用低于 7.1 的 PHP,您仍然可以使用 OpinHelper 0.x
先决条件
由于它需要 Utf8
,Strings
需要 mb_string,当可用时自动检测并使用 ext-intl 进行 UTF-8 规范化
实际上
Strings
实现了一些基本的文本操作功能,这在现实生活中可能非常有用
-
filter(string $string):string
删除零宽空白字符,规范化 EOL,如果可用,则使用 ext-intl 规范化 UTF8
-
singleWsIze(string $string, bool $normalize = false, bool $includeTabs = true):string
将重复的空白字符替换为一个,除非规范化(所有空白字符替换为 ' '),保留原始空白字符(包括或不包括制表符 \t)
-
singleLineIze(string $string):string
通过将 EOL 和空白字符替换为规范化的单个空白字符,使字符串适合一行
-
dropZwWs(string $string):string
删除零宽空白字符
-
normalizeWs(string $string, bool $includeTabs = true, int $maxConsecutive = null):string
默认情况下将空白字符规范化为一个
-
normalizeEol($string, $maxConsecutive = null, $eol = self::EOL):string
默认情况下将 EOL 规范化为单个 LF
-
normalizeText(string $text):string
返回
trim
和filter
过的 $text -
normalizeTitle(string $title):string
返回
singleLineIze
、normalizeWs
、normalizeText
和ucfirst
的 $title(《the best ever \t\r\n article》->《The best ever article》) -
normalizeName(string $name):string
返回
ucword
和normalizeTitle
的 $name(《john \n\t doe ”>《John Doe》) -
escape(string $string, int $flag = ENT_COMPAT, bool $hardEscape = true):string
htmlspecialchars() 带有 UTF8 编码的包装器
-
softEscape(string $string, int $flag = ENT_COMPAT):string
为
escape(string $string, $flag, true)
提供快捷方式 -
unEscape(string $string, int $quoteStyle = ENT_COMPAT):string
-
convert(string $string, string $from = null, string $to = self::ENCODING):string
默认情况下将编码转换为 UTF8。使用
Strings::detectEncoding()
进行基本的 $from 编码检测 -
detectEncoding(string $string):string|null
通过检查
Utf8::isUf8()
检测编码,然后尝试使用 BOM,最后回退到使用有限字符集的 mb_detect_encoding(),然后在内部使用 mb_convert_encoding() -
secureCompare(string $test, string $reference):bool
执行一个 计时攻击 安全的字符串比较(真正恒定操作的比较)
-
contentHash(string $content):string
返回带有 $content 长度的前缀的 $content 的
sha256
哈希值。缩进以便快速且可靠地检测 $content 更新。
需求
Strings
已在 php 7.2、7.3、7.4 和 8.0 上进行测试
贡献
欢迎贡献,请随时提交问题和提交拉取请求。
许可
Strings
是开源软件,许可协议为 MIT 许可协议