fab2s/strings

一个纯静态字符串助手,用于处理更高级的utf8字符串操作

1.0.2 2021-06-16 10:16 UTC

This package is auto-updated.

Last update: 2024-08-27 22:46:35 UTC


README

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

一个纯静态字符串助手,用于处理更高级的utf8字符串操作

安装

Strings 可以通过 composer 安装

composer require "fab2s/strings"

Strings 也包含在 OpinHelper 中,后者打包了多个“瑞士军刀”级别的助手,涵盖了PHP编程中一些最令人烦恼的问题,例如UTF8字符串操作、高精度数学或正确锁定文件

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

先决条件

由于它需要 Utf8Strings 需要 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

    返回 trimfilter 过的 $text

  • normalizeTitle(string $title):string

    返回 singleLineIzenormalizeWsnormalizeTextucfirst 的 $title(《the best ever \t\r\n article》->《The best ever article》)

  • normalizeName(string $name):string

    返回 ucwordnormalizeTitle 的 $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

    htmlspecialchars_decode() 包装器

  • 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 许可协议