voku / portable-utf8
便携式UTF-8库 - 性能优化的PHP(Unicode)字符串函数。
Requires
- php: >=7.0.0
- symfony/polyfill-iconv: ~1.0
- symfony/polyfill-intl-grapheme: ~1.0
- symfony/polyfill-intl-normalizer: ~1.0
- symfony/polyfill-mbstring: ~1.0
- symfony/polyfill-php72: ~1.0
- voku/portable-ascii: ~2.0.0
Requires (Dev)
- phpstan/phpstan: 1.9.*@dev
- phpstan/phpstan-strict-rules: 1.4.*@dev
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
- thecodingmachine/phpstan-strict-rules: 1.0.*@dev
- voku/phpstan-rules: 3.1.*@dev
Suggests
- ext-ctype: Use Ctype for e.g. hexadecimal digit detection
- ext-fileinfo: Use Fileinfo for better binary file detection
- ext-iconv: Use iconv for best performance
- ext-intl: Use Intl for best performance
- ext-json: Use JSON for string detection
- ext-mbstring: Use Mbstring for best performance
- dev-master
- 6.0.13
- 6.0.12
- 6.0.11
- 6.0.10
- 6.0.9
- 6.0.8
- 6.0.7
- 6.0.6
- 6.0.5
- 6.0.4
- 6.0.3
- 6.0.2
- 6.0.1
- 6.0.0
- 5.4.51
- 5.4.50
- 5.4.49
- 5.4.48
- 5.4.47
- 5.4.46
- 5.4.45
- 5.4.44
- 5.4.43
- 5.4.42
- 5.4.41
- 5.4.40
- 5.4.39
- 5.4.38
- 5.4.37
- 5.4.36
- 5.4.35
- 5.4.34
- 5.4.33
- 5.4.32
- 5.4.31
- 5.4.30
- 5.4.29
- 5.4.28
- 5.4.27
- 5.4.26
- 5.4.25
- 5.4.24
- 5.4.23
- 5.4.22
- 5.4.21
- 5.4.20
- 5.4.19
- 5.4.18
- 5.4.17
- 5.4.16
- 5.4.15
- 5.4.14
- 5.4.13
- 5.4.12
- 5.4.11
- 5.4.10
- 5.4.9
- 5.4.8
- 5.4.7
- 5.4.6
- 5.4.5
- 5.4.4
- 5.4.3
- 5.4.2
- 5.4.1
- 5.4.0
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.16
- 5.2.15
- 5.2.14
- 5.2.13
- 5.2.12
- 5.2.11
- 5.2.10
- 5.2.9
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.0
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.1
- 4.0.0
- 3.1.30
- 3.1.29
- 3.1.28
- 3.1.27
- 3.1.26
- 3.1.25
- 3.1.24
- 3.1.23
- 3.1.22
- 3.1.21
- 3.1.20
- 3.1.19
- 3.1.18
- 3.1.17
- 3.1.16
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.22
- 3.0.21
- 3.0.20
- 3.0.19
- 3.0.18
- 3.0.17
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.1.24
- 2.1.23
- 2.1.22
- 2.1.21
- 2.1.20
- 2.1.19
- 2.1.18
- 2.1.17
- 2.1.16
- 2.1.15
- 2.1.14
- 2.1.13
- 2.1.12
- 2.1.11
- 2.1.10
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.6.18
- 1.6.17
- 1.6.16
- 1.6.15
- 1.6.14
- 1.6.13
- 1.6.12
- 1.6.11
- 1.6.10
- 1.6.9
- 1.6.8
- 1.6.7
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.1
- 1.4.0
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.6.4
- 1.0.6.3
- 1.0.6.2
- 1.0.6.1
- 1.0.6
- 1.0.5.1
- 1.0.5
- 1.0.4.1
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-renovate/phpstan-packages
- dev-renovate/shivammathur-setup-php-2.x
- dev-renovate/actions-cache-4.x
- dev-renovate/major-github-artifact-actions
- dev-renovate/phpunit-phpunit-11.x
- dev-renovate/codecov-codecov-action-4.x
- dev-renovate/actions-checkout-4.x
- dev-analysis-7W6nYj
- dev-analysis-PGr00P
- dev-analysis-9mpAAl
- dev-analysis-OMGAOR
- dev-analysis-5Zjn5B
- dev-dependabot/add-v2-config-file
This package is auto-updated.
Last update: 2024-08-30 00:51:35 UTC
README
🉑 Portable UTF-8
描述
它是用PHP(PHP 7+)编写的,可以在没有“mbstring”、“iconv”或其他任何额外编码php扩展的情况下在服务器上工作。
便携式UTF-8的好处是易于使用、易于捆绑。此库还会自动检测您的服务器环境,并在可用的条件下使用安装的php扩展,因此您将获得最佳性能。
作为后备,我们将使用Symfony Polyfills,如果需要的话。(https://github.com/symfony/polyfill)
该项目基于...
- Hamid Sarfraz的工作 - portable-utf8
- Nicolas Grekas的工作 - tchwork/utf8
- Behat的工作 - Behat/Transliterator
- Sebastián Grignoli的工作 - neitanod/forceutf8
- Ivan Enderlin的工作 - hoaproject/Ustring
- 以及从"GitHub"-gists和"Stack Overflow"-snippets中挑选的许多内容...
演示
在这里,您可以测试此库的一些基本函数,并且可以将一些结果与原生php函数的结果进行比较。
索引
替代方案
如果您喜欢使用面向对象的方式来编辑字符串,那么您可以查看voku/Stringy,它是“danielstjules/Stringy”的一个分支,但它使用了“Portable UTF-8”类和一些额外的方法。
// Standard library strtoupper('fòôbàř'); // 'FòôBàř' strlen('fòôbàř'); // 10 // mbstring // WARNING: if you don't use a polyfill like "Portable UTF-8", you need to install the php-extension "mbstring" on your server mb_strtoupper('fòôbàř'); // 'FÒÔBÀŘ' mb_strlen('fòôbàř'); // '6' // Portable UTF-8 use voku\helper\UTF8; UTF8::strtoupper('fòôbàř'); // 'FÒÔBÀŘ' UTF8::strlen('fòôbàř'); // '6' // voku/Stringy use Stringy\Stringy as S; $stringy = S::create('fòôbàř'); $stringy->toUpperCase(); // 'FÒÔBÀŘ' $stringy->length(); // '6'
通过"composer require"安装"Portable UTF-8"
composer require voku/portable-utf8
如果您的项目不需要一些Symfony polyfills,请使用您的composer.json
文件中的replace
部分。这将删除这些polyfills的任何开销,因为它们不再是您项目的一部分。例如:
{ "replace": { "symfony/polyfill-php72": "1.99", "symfony/polyfill-iconv": "1.99", "symfony/polyfill-intl-grapheme": "1.99", "symfony/polyfill-intl-normalizer": "1.99", "symfony/polyfill-mbstring": "1.99" } }
为什么选择Portable UTF-8?
PHP 5及更早版本没有本机Unicode支持。为了弥合这一差距,存在几个扩展,如"mbstring"、"iconv"和"intl"。
"mbstring"和其他扩展的问题在于,大多数时候您无法确保服务器上存在特定的一个。如果您依赖其中之一,那么您的应用程序就不再具有可移植性。对于需要在不同服务器上运行且配置不同的开源应用程序来说,这个问题变得更加严重。考虑到这些,我决定编写一个库
需求和推荐
- 运行此库不需要任何扩展。仅需要自 PHP 4.2.0 以来默认可用的 PCRE 库,自 PHP 5.3.0 以来无法禁用。PCRE 对 UTF-8 处理的 "\u" 修饰符支持不是必需的。
- PHP 5.3 是最低要求,所有后续版本都对 Portable UTF-8 兼容。
- 自 Portable UTF-8 4.0 版本以来,最低要求为 PHP 7.0,否则 composer 将安装较旧版本。
- PHP 8.0 也支持并会适配原生函数的行为。
- 为了加速字符串处理,建议您在服务器上安装 "mbstring" 或 "iconv",以及最新版本的 PCRE 库。
- 尽管 Portable UTF-8 使用方便;从原生 API 转移到 Portable UTF-8 可能对每个人来说都不简单。强烈建议在了解原因和后果之前,不要更新脚本以包含 Portable UTF-8 或替换或更改任何内容。大多数时候,一些原生函数可能就是您需要的。
- 此外,还有 "mbstring"、"iconv" 和 "intl" 的适配器,因此您也可以在共享空间中使用它。
用法
示例 1:UTF8::cleanup()
echo UTF8::cleanup('�Düsseldorf�'); // will output: // Düsseldorf
示例 2:UTF8::strlen()
$string = 'string <strong>with utf-8 chars åèä</strong> - doo-bee doo-bee dooh'; echo strlen($string) . "\n<br />"; echo UTF8::strlen($string) . "\n<br />"; // will output: // 70 // 67 $string_test1 = strip_tags($string); $string_test2 = UTF8::strip_tags($string); echo strlen($string_test1) . "\n<br />"; echo UTF8::strlen($string_test2) . "\n<br />"; // will output: // 53 // 50
示例 3:UTF8::fix_utf8()
echo UTF8::fix_utf8('Düsseldorf'); echo UTF8::fix_utf8('ä'); // will output: // Düsseldorf // ä
Portable UTF-8 | API
"UTF8" 类的 API 以匹配默认 PHP-API 的小型静态方法编写。
类方法
access(string $str, int $pos, string $encoding): string
↑ 返回指定位置的字符:类似 $str[1] 的功能。
示例:UTF8::access('fòô', 1); // 'ò'
参数
string $str <p>UTF-8 字符串。</p>
int $pos <p>要返回的字符的位置。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>单个多字节字符。</p>
add_bom_to_string(string $str): non-empty-string
↑ 在字符串前添加 UTF-8 BOM 字符并返回整个字符串。
信息:如果 BOM 已经存在,则返回输入字符串。
示例:UTF8::add_bom_to_string('fòô'); // "\xEF\xBB\xBF" . 'fòô'
参数
string $str <p>输入字符串。</p>
返回值
non-empty-string <p>包含 BOM 的输出字符串。</p>
array_change_key_case(array $array, int $case, string $encoding): string[]
↑ 修改数组中的所有键。
参数
array<string, mixed> $array <p>要操作的数组。</p>
int $case [可选] <p>可以是 <strong>CASE_UPPER</strong><br> 或 <strong>CASE_LOWER</strong>(默认)。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string[] <p>键已转换为小写或大写的数组。</p>
between(string $str, string $start, string $end, int $offset, string $encoding): string
↑ 如果找到,则返回 $start 和 $end 之间的子字符串,否则返回空字符串。可以提供一个可选的偏移量,从该偏移量开始搜索起始字符串。
参数
string $str
string $start <p>分隔符,标记子字符串的开始。</p>
string $end <p>分隔符,标记子字符串的结束。</p>
int $offset [可选] <p>搜索的起始索引。默认:0。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
binary_to_str(string $bin): string
↑ 将二进制转换为字符串。
信息:与 UTF8::str_to_binary() 相反
示例:UTF8::binary_to_str('11110000100111111001100010000011'); // '😃'
参数
string $bin 1|0
返回值
string
bom(): non-empty-string
↑ 返回 UTF-8 字节顺序标记字符。
信息:查看 UTF8::$bom 以获取例如 UTF-16 和 UTF-32 BOM 值
示例:UTF8::bom(); // "\xEF\xBB\xBF"
参数: 无
返回值
non-empty-string <p>UTF-8 字节顺序标记。</p>
callback(可调用(string): string $callback, string $str): string[]
参数
可调用(string): string $callback
string $str
返回值
string[]
char_at(string $str, int $index, string $encoding): string
↑ 返回索引处的字符,索引从0开始。
参数
string $str <p>输入字符串。</p>
int<1, max> $index <p>字符的位置.</p>
string $encoding [可选] <p>默认为UTF-8</p>
返回值
string <p>索引处的字符.</p>
chars(string $str): string[]
↑ 返回一个包含字符串中字符的数组。
参数
T $str <p>输入字符串.</p>
返回值
string[] <p>字符数组.</p>
checkForSupport(): true|null
↑ 此方法将自动检测服务器环境是否支持UTF-8。
参数: 无
返回值
true|null
chr(int $code_point, string $encoding): string|null
↑ 从给定的代码点生成UTF-8编码的字符。
INFO: 与UTF8::ord()相反
EXAMPLE: UTF8::chr(0x2603); // '☃'
参数
int $code_point <p>要生成字符的代码点.</p>
string $encoding [可选] <p>默认为UTF-8</p>
返回值
string|null <p>多字节字符,失败或空输入时返回null.</p>
chr_map(callable(string): string $callback, string $str): string[]
↑ 将回调应用于字符串中的所有字符。
EXAMPLE: UTF8::chr_map([UTF8::class, 'strtolower'], 'Κόσμε'); // ['κ','ό', 'σ', 'μ', 'ε']
参数
可调用(string): string $callback
string $str <p>要运行回调的UTF-8字符串.</p>
返回值
string[] <p>回调的结果,作为数组.</p>
chr_size_list(string $str): int[]
↑ 生成包含Unicode字符串中每个字符的字节长度的数组。
1字节 > U+0000 - U+007F 2字节 > U+0080 - U+07FF 3字节 > U+0800 - U+FFFF 4字节 > U+10000 - U+10FFFF
EXAMPLE: UTF8::chr_size_list('中文空白-test'); // [3, 3, 3, 3, 1, 1, 1, 1, 1]
参数
T $str <p>原始unicode字符串.</p>
返回值
int[] <p>每个字符的字节长度数组.</p>
chr_to_decimal(string $char): int
↑ 获取特定字符的十进制代码表示。
INFO: 与UTF8::decimal_to_chr()相反
EXAMPLE: UTF8::chr_to_decimal('§'); // 0xa7
参数
string $char <p>输入字符.</p>
返回值
int
chr_to_hex(int|string $char, string $prefix): string
↑ 获取UTF-8编码字符的十六进制代码点(U+xxxx)。
EXAMPLE: UTF8::chr_to_hex('§'); // U+00a7
参数
int|string $char <p>输入字符</p>
string $prefix [可选]
返回值
string <p>编码为U+xxxx的代码点.</p>
chunk_split(string $str, int $chunk_length, string $end): string
↑ 使用指定的行结束字符将字符串拆分为更小的块和多个行。
EXAMPLE: UTF8::chunk_split('ABC-ÖÄÜ-中文空白-κόσμε', 3); // "ABC\r\n-ÖÄ\r\nÜ-中\r\n文空白\r\n-κό\r\nσμε"
参数
T $str <p>要拆分的原始字符串.</p>
int<1, max> $chunk_length [可选] <p>块的字符最大长度.</p>
string $end [可选] <p>要插入到每个块末尾的字符(或字符集).</p>
返回值
string <p>拆分的字符串.</p>
clean(string $str, bool $remove_bom, bool $normalize_whitespace, bool $normalize_msword, bool $keep_non_breaking_space, bool $replace_diamond_question_mark, bool $remove_invisible_characters, bool $remove_invisible_characters_url_encoded): string
↑ 接受一个字符串,并从中删除所有非UTF-8字符,如需则附加。
示例: UTF8::clean("\xEF\xBB\xBF„Abcdef\xc2\xa0\x20…” — 😃 - Düsseldorf", true, true); // '„Abcdef …” — 😃 - Düsseldorf'
参数
string $str <p>要清洗的字符串.</p>
bool $remove_bom [可选] <p>设置为true,如果您需要删除UTF-BOM.</p>
bool $normalize_whitespace [可选] <p>设置为true,如果您需要规范空格.</p>
bool $normalize_msword [可选] <p>设置为true,如果您需要规范MS Word字符,例如:"…" => "..."</p>
bool $keep_non_breaking_space [可选] <p>设置为true,以保留非换行空格,与$normalize_whitespace结合使用</p>
bool $replace_diamond_question_mark [可选] <p>设置为true,如果您需要删除菱形问号,例如:"�"</p>
bool $remove_invisible_characters [可选] <p>设置为false,如果您不希望删除不可见字符,例如:"\\0"</p>
- `bool $remove_invisible_characters_url_encoded [可选]
设置为true,如果您不希望删除不可见的URL编码字符,例如:"%0B"</p>
警告:可能包含假阳性,例如:aa%0Baa -> aaaa。
返回值
string <p>一个干净的UTF-8编码字符串.</p>
cleanup(string $str): string
↑ 清洗一个字符串,并在最后仅显示可打印的UTF-8字符 + 修复UTF-8编码。
示例: UTF8::cleanup("\xEF\xBB\xBF„Abcdef\xc2\xa0\x20…” — 😃 - Düsseldorf", true, true); // '„Abcdef …” — 😃 - Düsseldorf'
参数
string $str <p>输入字符串。</p>
返回值
string
codepoints(string|string[] $arg, bool $use_u_style): int[]|string[]
↑ 接受一个字符串或字符数组,并返回Unicode码点的数组。
INFO:与UTF8::string()相反
示例: UTF8::codepoints('κöñ'); // array(954, 246, 241) // ... OR ... UTF8::codepoints('κöñ', true); // array('U+03ba', 'U+00f6', 'U+00f1')
参数
T $arg <p>一个UTF-8编码的字符串或字符数组.</p>
bool $use_u_style <p>如果为true,将返回U+xxxx格式的码点,默认为整数形式返回码点.</p>
返回值
- `int[]|string[]
码点数组
int[] for $u_style === false
string[] for $u_style === true
collapse_whitespace(string $str): string
↑ 压缩字符串,并将连续的空白字符替换为单个空格。这包括制表符和换行符,以及多字节空白字符,如细空格和表意空格。
参数
string $str <p>输入字符串。</p>
返回值
string <p>一个经过修剪和压缩空格的字符串.$str.</p>
count_chars(string $str, bool $clean_utf8, bool $try_to_use_mb_functions): int[]
↑ 返回字符串中使用的字符数量。
示例: UTF8::count_chars('κaκbκc'); // array('κ' => 3, 'a' => 1, 'b' => 1, 'c' => 1)
参数
T $str <p>输入字符串.</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
bool $try_to_use_mb_functions [可选] <p>设置为false,如果您不想使用
返回值
int[] <p>字符作为键,其计数作为值的关联数组.</p>
css_identifier(string $str, string[] $filter, bool $strip_tags, bool $strtolower): string
↑ 为例如"class"或"id"属性创建有效的CSS标识符。
示例: UTF8::css_identifier('123foo/bar!!!'); // _23foo-bar
copy&past from https://github.com/drupal/core/blob/8.8.x/lib/Drupal/Component/Utility/Html.php#L95
参数
string $str <p>INFO:如果未提供标识符,例如" "或"",我们将自动创建一个唯一的字符串</p>
array<string, string> $filter
bool $strip_tags
bool $strtolower
返回值
string
css_stripe_media_queries(string $str): string
↑ 移除CSS媒体查询。
参数
string $str
返回值
string
ctype_loaded(): bool
↑ 检查服务器上是否可用ctype。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
decimal_to_chr(int|string $int): string
↑ 将整数值转换为UTF-8字符。
INFO:与UTF8::string()相反
示例: UTF8::decimal_to_chr(931); // 'Σ'
参数
int|string $int
返回值
string
decode_mimeheader(string $str, string $encoding): false|string
↑ 解码MIME头字段
参数
string $str
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
<p>成功时返回解码的MIME字段,或发生错误时返回false</p>
emoji_decode(string $str, bool $use_reversible_string_mappings): string
↑ 解码由"UTF8::emoji_encode()"编码的字符串。
INFO:与UTF8::emoji_encode()相反
示例: UTF8::emoji_decode('foo CHARACTER_OGRE', false); // 'foo 👹' // UTF8::emoji_decode('foo -PORTABLE_UTF8-308095726-627590803-8FTU_ELBATROP-', true); // 'foo 👹'
参数
string $str <p>输入字符串。</p>
bool $use_reversible_string_mappings [optional] <p> 当 <b>TRUE</b> 时,我们在 "emoji_encode" 和 "emoji_decode" 之间使用可逆字符串映射。</p>
返回值
string
emoji_encode(string $str, bool $use_reversible_string_mappings): string
↑ 将包含emoji字符的字符串编码为非emoji字符串。
INFO:与UTF8::emoji_decode()相反
示例: UTF8::emoji_encode('foo 👹', false)); // 'foo CHARACTER_OGRE' // UTF8::emoji_encode('foo 👹', true)); // 'foo -PORTABLE_UTF8-308095726-627590803-8FTU_ELBATROP-'
参数
string $str <p>输入字符串</p>
bool $use_reversible_string_mappings [optional] <p> 当 <b>TRUE</b> 时,我们在 "emoji_encode" 和 "emoji_decode" 之间使用可逆字符串映射。</p>
返回值
string
emoji_from_country_code(string $country_code_iso_3166_1): string
↑ 将任何两位字母的国家代码(ISO 3166-1)转换为相应的Emoji。
参数
string $country_code_iso_3166_1 <p>例如:DE</p>
返回值
string <p>错误时为空字符串的Emoji。</p>
encode(string $to_encoding, string $str, bool $auto_detect_the_from_encoding, string $from_encoding): string
↑ 使用新的字符集编码对字符串进行编码。
INFO:此函数还会尝试修复损坏/双重编码,因此您也可以在UTF-8字符串上调用此函数,而不会弄乱字符串。
示例: UTF8::encode('ISO-8859-1', '-ABC-中文空白-'); // '-ABC-????-' // UTF8::encode('UTF-8', '-ABC-中文空白-'); // '-ABC-中文空白-' // UTF8::encode('HTML', '-ABC-中文空白-'); // '-ABC-中文空白-' // UTF8::encode('BASE64', '-ABC-中文空白-'); // 'LUFCQy3kuK3mlofnqbrnmb0t'
参数
string $to_encoding <p>例如:'UTF-16', 'UTF-8', 'ISO-8859-1' 等。</p>
string $str <p>输入字符串</p>
bool $auto_detect_the_from_encoding [optional] <p> 强制新编码(我们尝试修复UTF-8的损坏/双重编码)<br> 否则,我们自动检测当前字符串编码</p>
string $from_encoding [optional] <p> 例如:'UTF-16', 'UTF-8', 'ISO-8859-1' 等。<br> 空字符串将触发自动检测。</p>
返回值
string
encode_mimeheader(string $str, string $from_charset, string $to_charset, string $transfer_encoding, string $linefeed, int $indent): false|string
参数
string $str
string $from_charset [optional] <p> 设置输入字符集。</p>
string $to_charset [optional] <p> 设置输出字符集。</p>
string $transfer_encoding [optional] <p> 设置传输编码。</p>
string $linefeed [optional] <p> 设置使用的换行符。</p>
int <1, max> $indent [optional] <p> 设置最大长度缩进。</p>
返回值
编码后的 MIME 字段(成功时),或者在编码过程中发生错误时返回 false。
extract_text(string $str, string $search, int|null $length, string $replacer_for_skipped_text, string $encoding): string
↑ 从句子中提取文本,如果找到了搜索字符串,则尝试在输出中居中。
参数
string $str <p>输入字符串。</p>
string $search
要搜索的字符串。
int|null $length [可选]
默认:null === text->length / 2
string $replacer_for_skipped_text [可选]
默认:…
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
file_get_contents(string $filename, bool $use_include_path, resource|null $context, int|null $offset, int|null $max_length, int $timeout, bool $convert_to_utf8, string $from_encoding): false|string
↑ 将整个文件读入字符串。
示例:UTF8::file_get_contents('utf16le.txt'); // ...
警告:不要对二进制文件(例如:图像)使用 UTF-8 选项($convert_to_utf8)!!!
参数
- `string $filename
要读取的文件名。
在 PHP 5 之前,此参数称为 use_include_path,是一个 bool。从 PHP 5 开始,可以使用 FILE_USE_INCLUDE_PATH 触发包含路径搜索。
` - `resource|null $context [可选]使用 stream_context_create 创建的有效上下文资源。如果您不需要使用自定义上下文,可以通过 &null; 跳过此参数。
` - `int|null $offset [可选]读取开始的偏移量。
` - `int<0, max>|null $max_length [可选]读取数据的最大长度。默认是读取到文件末尾。
` - `int $timeout超时时间(秒)。
` - `bool $convert_to_utf8 警告!!!对于某些文件,您可能无法使用此选项,因为它们使用了非默认的 utf-8 字符。二进制文件(如图像或 pdf)不会转换。
` - `string $from_encoding [可选]例如:'UTF-16','UTF-8','ISO-8859-1' 等。
空字符串将触发自动检测。
返回值
false|string
函数返回读取的数据作为字符串,或者在失败时返回 <b>false</b>。
file_has_bom(string $file_path): bool
↑ 检查文件是否以 BOM(字节顺序标记)字符开始。
示例:UTF8::file_has_bom('utf8_with_bom.txt'); // true
参数
string $file_path
有效文件的路径。
返回值
bool
<strong>true</strong> 如果文件在开头有 BOM,否则 <strong>false</strong>。
filter(array|object|string $var, int $normalization_form, string $leading_combining): mixed
↑ 将其标准化为 UTF-8 NFC,在需要时从 WINDOWS-1252 转换。
示例:UTF8::filter(array("\xE9", 'à', 'a')); // array('é', 'à', 'a')
参数
TFilter $var
int $normalization_form
string $leading_combining
返回值
mixed
filter_input(int $type, string $variable_name, int $filter, int|int[]|null $options): mixed
↑ "filter_input()" 包装器,将标准化为 UTF-8 NFC,在需要时从 WINDOWS-1252 转换。
通过名称获取特定外部变量,并可选地对其进行过滤。
示例: // _GET['foo'] = 'bar'; UTF8::filter_input(INPUT_GET, 'foo', FILTER_UNSAFE_RAW)); // 'bar'
参数
- `int $type
可以是 INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SERVER 或 INPUT_ENV 之一。
要获取的变量的名称。
` - `int $filter [可选]要应用的过滤器的 ID。手册页列出了可用的过滤器。
` - `int|int[]|null $options [可选]选项的关联数组或标志的按位或。如果过滤器接受选项,则可以在数组的 "flags" 字段中提供标志。
`返回值
- `mixed
请求变量的值在成功时,如果过滤器失败则返回FALSE,如果variable_name变量未设置则返回NULL。如果使用了标志FILTER_NULL_ON_FAILURE,则变量未设置时返回FALSE,过滤器失败时返回NULL。
filter_input_array(int $type, array|null $definition, bool $add_empty): array<string,mixed>|false|null
↑ "filter_input_array()"包装器,将UTF-8 NFC标准化,在需要时从WINDOWS-1252转换。
获取外部变量并可选地过滤它们。
示例: // _GET['foo'] = 'bar'; UTF8::filter_input_array(INPUT_GET, array('foo' => 'FILTER_UNSAFE_RAW')); // array('bar')
参数
- `int $type
可以是 INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SERVER 或 INPUT_ENV 之一。
定义参数的数组。有效的键是一个包含变量名的字符串,有效的值是一个过滤器类型,或者一个可选地指定过滤器、标志和选项的数组。如果值是数组,有效的键是filter,指定过滤器类型,flags,指定应用于过滤器的任何标志,和options,指定应用于过滤器的任何选项。下面的示例可更好地理解。
此参数也可以是一个包含过滤器常量的整数。然后,输入数组中的所有值都将通过此过滤器进行过滤。
` - `bool $add_empty [可选]将缺失的键作为NULL添加到返回值中。
`返回值
- `array<string,mixed>|false|null
成功时包含请求变量的值的数组,或失败时返回FALSE。数组值如果过滤器失败则返回FALSE,如果变量未设置则返回NULL。或者如果使用了标志FILTER_NULL_ON_FAILURE,则变量未设置时返回FALSE,过滤器失败时返回NULL。
filter_var(float|int|string|null $variable, int $filter, int|int[] $options): mixed
↑ "filter_var()"包装器,将UTF-8 NFC标准化,在需要时从WINDOWS-1252转换。
使用指定的过滤器过滤变量。
示例:UTF8::filter_var('-ABC-中文空白-', FILTER_VALIDATE_URL); // false
参数
- `float|int|string|null $variable
要过滤的值。
要应用的过滤器的 ID。手册页列出了可用的过滤器。
` - `int|int[] $options [可选]选项的关联数组或标志的按位或。如果过滤器接受选项,可以在数组的"flags"字段中提供标志。对于"callback"过滤器,应传递可调用类型。回调必须接受一个参数,即要过滤的值,并返回过滤/清理后的值。
// 对于接受选项的过滤器,使用此格式 $options = array( 'options' => array( 'default' => 3, // 过滤器失败时返回的值 // 其他选项在此 'min_range' => 0 ), 'flags' => FILTER_FLAG_ALLOW_OCTAL, ); $var = filter_var('0755', FILTER_VALIDATE_INT, $options); // 对于只接受标志的过滤器,可以直接传递 $var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); // 对于只接受标志的过滤器,也可以作为数组传递 $var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, array('flags' => FILTER_NULL_ON_FAILURE)); // callback验证过滤器函数foo($value) { // 期望格式:Surname, GivenNames if (strpos($value, ", ") === false) return false; list($surname, $givennames) = explode(", ", $value, 2); $empty = (empty($surname) || empty($givennames)); $notstrings = (!is_string($surname) || !is_string($givennames)); if ($empty || $notstrings) { return false; } else { return $value; } } $var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
返回值
mixed <p>过滤后的数据,或<b>FALSE</b>如果过滤器失败。</p>
filter_var_array(array $data, array|int $definition, bool $add_empty): array<string,mixed>|false|null
↑ "filter_var_array()"包装器,将UTF-8 NFC标准化,在需要时从WINDOWS-1252转换。
获取多个变量并可选地过滤它们。
示例: $filters = [ 'name' => ['filter' => FILTER_CALLBACK, 'options' => [UTF8::class, 'ucwords']], 'age' => ['filter' => FILTER_VALIDATE_INT, 'options' => ['min_range' => 1, 'max_range' => 120]], 'email' => FILTER_VALIDATE_EMAIL, ];
$data = [ 'name' => 'κόσμε', 'age' => '18', 'email' => '[email protected]' ];
UTF8::filter_var_array($data, $filters, true); // ['name' => 'Κόσμε', 'age' => 18, 'email' => '[email protected]']
参数
- `array
$data 包含要过滤的数据的字符串键数组。
定义参数的数组。有效的键是一个包含变量名的字符串,有效的值是一个过滤器类型,或者一个可选地指定过滤器、标志和选项的数组。如果值是数组,有效的键是filter,指定过滤器类型,flags,指定应用于过滤器的任何标志,和options,指定应用于过滤器的任何选项。下面的示例可更好地理解。
此参数也可以是一个包含过滤器常量的整数。然后,输入数组中的所有值都将通过此过滤器进行过滤。
` - `bool $add_empty [可选]将缺失的键作为NULL添加到返回值中。
`返回值
- `array<string,mixed>|false|null
在成功时包含请求的变量值,或者在失败时返回 FALSE。如果过滤器失败,数组值将是 FALSE,如果变量未设置,则返回 NULL。
finfo_loaded(): bool
↑ 检查服务器上是否可用 finfo。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
first_char(string $str, int $n, string $encoding): string
↑ 返回字符串的前 $n 个字符。
参数
T $str <p>输入字符串.</p>
int<1, max>$n <p>从开头检索的字符数.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
fits_inside(string $str, int $box_size): bool
↑ 检查Unicode字符的数量是否不大于指定的整数。
示例:UTF8::fits_inside('κόσμε', 6); // false
参数
string $str 待检查的原始字符串
int $box_size 检查字符串大小的字符数
返回值
bool <p><strong>TRUE</strong> 如果字符串小于或等于 $box_size,否则 <strong>FALSE</strong>.</p>
fix_simple_utf8(string $str): string
↑ 尝试修复简单的损坏的 UTF-8 字符串。
信息:如果您需要更高级的损坏 UTF-8 字符串修复,请查看 "UTF8::fix_utf8()"。
示例:UTF8::fix_simple_utf8('Düsseldorf'); // 'Düsseldorf'
如果您收到一个从 Windows-1252 转换为 ISO-8859-1 的 UTF-8 字符串(忽略从 80 到 9F 的 Windows-1252 字符),请使用此函数修复它。查看:http://en.wikipedia.org/wiki/Windows-1252
参数
string $str <p>输入字符串</p>
返回值
string
fix_utf8(string|string[] $str): string|string[]
↑ 修复双(或多个)编码的 UTF8 字符串。
示例:UTF8::fix_utf8('Fédération'); // 'Fédération'
参数
TFixUtf8 $str 可以使用字符串或字符串数组
返回值
string|string[] <p>将返回修复后的输入-"数组"或修复后的输入-"字符串"。</p>
getCharDirection(string $char): string
↑ 获取特定字符的字符。
示例:UTF8::getCharDirection('ا'); // 'RTL'
参数
string $char
返回值
string <p>'RTL' 或 'LTR'。</p>
getSupportInfo(string|null $key): mixed
↑ 检查 php 支持。
参数
string|null $key
返回值
mixed 如果 $key === null,则返回完整的支持-"数组";如果 $key 被使用并且可用,则返回 bool 值;否则返回 null。
getUrlParamFromArray(string $param, array $data): mixed
↑ 通过类似于字符串的数组获取数据。
示例:$array['foo'][123] = 'lall'; UTF8::getUrlParamFromArray('foo[123]', $array); // 'lall'
参数
string $param
array
$data
返回值
mixed
get_file_type(string $str, array $fallback)
↑ 注意:此方法仅适用于某些文件类型(png、jpg),如果需要更多支持类型,请使用例如 "finfo"。
参数
string $str
array{ext: (null|string), mime: (null|string), type: (null|string)} $fallback
返回值
array{ext: (null|string), mime: (null|string), type: (null|string)}
get_random_string(int $length, string $possible_chars, string $encoding): string
参数
int<1, max> $length <p>随机字符串的长度</p>
T $possible_chars [optional] <p>用于随机选择的字符字符串</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
get_unique_string(int|string $extra_entropy, bool $use_md5): non-empty-string
参数
int|string $extra_entropy [optional] <p>通过字符串或整数值提供额外熵</p>
bool $use_md5 [optional] <p>将唯一标识符作为md5散列返回?默认:true</p>
返回值
non-empty-string
has_lowercase(string $str): bool
↑ 如果字符串包含小写字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>字符串是否包含小写字母</p>
has_uppercase(string $str): bool
↑ 如果字符串包含大写字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>字符串是否包含大写字母</p>
has_whitespace(string $str): bool
↑ 如果字符串包含空白字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>字符串是否包含空白字符</p>
hex_to_chr(string $hexdec): string
↑ 将十六进制值转换为UTF-8字符。
INFO: 相反于 UTF8::chr_to_hex()
EXAMPLE: UTF8::hex_to_chr('U+00a7'); // '§'
参数
string $hexdec <p>十六进制值</p>
返回值
string <p>单个UTF-8字符</p>
hex_to_int(string $hexdec): false|int
↑ 将十六进制U+xxxx代码点表示转换为整数。
INFO: 相反于 UTF8::int_to_hex()
EXAMPLE: UTF8::hex_to_int('U+00f1'); // 241
参数
string $hexdec <p>十六进制代码点表示</p>
返回值
false|int <p>代码点,或在失败时返回false</p>
html_encode(string $str, bool $keep_ascii_chars, string $encoding): string
↑ 将UTF-8字符串转换为一系列HTML编号实体。
INFO: 相反于 UTF8::html_decode()
EXAMPLE: UTF8::html_encode('中文空白'); // '中文空白'
参数
T $str <p>要编码为编号实体的Unicode字符串</p>
bool $keep_ascii_chars [optional] <p>保留ASCII字符</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>HTML编号实体</p>
html_entity_decode(string $str, int|null $flags, string $encoding): string
↑ UTF-8版本的html_entity_decode()
我们为什么不使用html_entity_decode()的原因是因为虽然省略实体末尾的分号在技术上是不正确的,但大多数浏览器仍然会正确解释实体。html_entity_decode()不转换没有分号的实体,所以我们在这里有我们自己小小的解决方案。真糟糕。
将所有HTML实体转换为它们对应的字符。
INFO: 相反于 UTF8::html_encode()
EXAMPLE: UTF8::html_entity_decode('中文空白'); // '中文空白'
参数
- `T $str
输入字符串。
一个或多个以下标志的位掩码,指定如何处理引号以及使用哪种文档类型。默认为ENT_COMPAT | ENT_HTML401。
可用的 flags 常量` - `string $encoding [optional]设置字符集,例如“mb_”函数。
`返回值
string <p>解码后的字符串.</p>
html_escape(string $str, string $encoding): string
↑ 通过“UTF8::htmlspecialchars()”创建字符串的转义HTML版本。
参数
string $str
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
html_stripe_empty_tags(string $str): string
↑ 删除空HTML标签。
例如:
参数
string $str
返回值
string
htmlentities(string $str, int $flags, string $encoding, bool $double_encode): string
↑ 将所有适用的字符转换为HTML实体:htmlentities()的UTF-8版本。
示例: UTF8::htmlentities('<白-öäü>'); // '<白-öäü>'
参数
- `string $str
输入字符串。
以下标志之一或多个的位掩码,指定如何处理引号、无效代码单元序列和使用的文档类型。默认为ENT_COMPAT | ENT_HTML401。
可用的 flags 常量` - `string $encoding [optional]与htmlspecialchars()类似,htmlentities()接受一个可选的第三个参数encoding,它定义了转换中使用的编码。尽管这个参数在技术上是可以省略的,但强烈建议为您的代码指定正确的值。
` - `bool $double_encode [可选]当double_encode关闭时,PHP不会编码现有的HTML实体。默认是将所有内容转换。
`返回值
- `string
编码后的字符串。
如果输入的string包含在给定encoding中无效的代码单元序列,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志,否则将返回空字符串。
htmlspecialchars(string $str, int $flags, string $encoding, bool $double_encode): string
↑ 仅将特殊字符转换为HTML实体:htmlspecialchars()的UTF-8版本
INFO:查看“UTF8::htmlentities()”
示例: UTF8::htmlspecialchars('<白-öäü>'); // '<白-öäü>'
参数
- `T $str
正在转换的字符串。
以下标志之一或多个的位掩码,指定如何处理引号、无效代码单元序列和使用的文档类型。默认为ENT_COMPAT | ENT_HTML401。
可用的 flags 常量` - `string $encoding [optional]定义转换中使用的编码。
对于此函数而言,ISO-8859-1、ISO-8859-15、UTF-8、cp866、cp1251、cp1252和KOI8-R编码在以下情况下是等效的:如果string本身对编码是有效的,因为受htmlspecialchars()影响的字符在这些所有编码中都占据相同的位置。
` - `bool $double_encode [可选]当double_encode关闭时,PHP不会编码现有的HTML实体,默认是将所有内容转换。
`返回值
- `string
转换后的字符串。
如果输入的string包含在给定encoding中无效的代码单元序列,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志,否则将返回空字符串。
`iconv_loaded(): bool
↑ 检查服务器上是否可用的iconv。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
int_to_hex(int $int, string $prefix): string
↑ 将整数转换为十六进制U+xxxx代码点表示。
INFO:与UTF8::hex_to_int()相反
示例: UTF8::int_to_hex(241); // 'U+00f1'
参数
int $int <p>要转换为十六进制代码点的整数.</p>
string $prefix [可选]
返回值
代码点,或在失败时为空字符串
intlChar_loaded(): bool
↑ 检查服务器上是否可用的intl-char。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
intl_loaded(): bool
↑ 检查服务器上是否可用的intl。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
is_alpha(string $str): bool
↑ 如果字符串仅包含字母字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>是否 $str 仅包含字母字符.</p>
is_alphanumeric(string $str): bool
↑ 如果字符串仅包含字母和数字字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>是否 $str 仅包含字母数字字符.</p>
is_ascii(string $str): bool
↑ 检查字符串是否为7位ASCII。
示例: UTF8::is_ascii('白'); // false
参数
string $str <p>要检查的字符串.</p>
返回值
- `bool
如果是ASCII
否则为false
is_base64(string|null $str, bool $empty_string_is_valid): bool
↑ 如果字符串是base64编码,则返回true,否则返回false。
示例: UTF8::is_base64('4KSu4KWL4KSo4KS/4KSa'); // true
参数
string|null $str <p>输入字符串.</p>
bool $empty_string_is_valid [可选] <p>空字符串是否是有效的base64编码?</p>
返回值
bool <p>$str是否是base64编码的.</p>
is_binary(int|string $input, bool $strict): bool
↑ 检查输入是否是二进制... (看起来像是一个黑客技巧).
示例: UTF8::is_binary(01); // true
参数
int|string $input
bool $strict
返回值
bool
is_binary_file(string $file): bool
↑ 检查文件是否是二进制。
示例: UTF8::is_binary('./utf32.txt'); // true
参数
string $file
返回值
bool
is_blank(string $str): bool
↑ 如果字符串仅包含空白字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>$str是否仅包含空白字符.</p>
is_bom(string $str): bool
↑ 检查给定的字符串是否等于任何"字节顺序标记"。
警告:如果您将在字符串中检查BOM,请使用"UTF8::string_has_bom()"。
示例: UTF8::is_bom("\xef\xbb\xbf"); // true
参数
string $str <p>输入字符串。</p>
返回值
bool <p><strong>如果是字节顺序标记,则返回true</strong>,否则返回false.</p>
is_empty(array|float|int|string $str): bool
↑ 确定字符串是否被认为是空的。
如果变量不存在或其值等于FALSE,则认为该变量为空。如果变量不存在,empty()不会生成警告。
参数
array<array-key, mixed>|float|int|string $str
返回值
bool <p>$str是否为空().</p>
is_hexadecimal(string $str): bool
↑ 如果字符串仅包含十六进制字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>$str是否仅包含十六进制字符.</p>
is_html(string $str): bool
↑ 检查字符串是否包含任何HTML标签。
示例: UTF8::is_html('lall'); // true
参数
string $str <p>输入字符串。</p>
返回值
bool <p>$str是否包含HTML元素.</p>
is_json(string $str, bool $only_array_or_object_results_are_valid): bool
↑ 尝试检查"$str"是否是JSON字符串。
示例: UTF8::is_json('{"array":[1,"¥","ä"]}'); // true
参数
string $str <p>输入字符串。</p>
bool $only_array_or_object_results_are_valid [可选] <p>只有数组和对象是有效的JSON结果.</p>
返回值
bool <p>$str是否为JSON格式.</p>
is_lowercase(string $str): bool
参数
string $str <p>输入字符串。</p>
返回值
bool <p>$str是否仅包含小写字母.</p>
is_printable(string $str, bool $ignore_control_characters): bool
↑ 如果字符串仅包含可打印(非不可见)字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
bool $ignore_control_characters [可选] <p>忽略控制字符,如[LRM]或[LSEP].</p>
返回值
bool <p>$str是否仅包含可打印(非不可见)字符.</p>
is_punctuation(string $str): bool
↑ 如果字符串仅包含标点符号字符,则返回true,否则返回false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>$str是否仅包含标点符号字符.</p>
is_serialized(string $str): bool
↑ 如果字符串已序列化,则返回 true,否则返回 false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>判断 $str 是否已序列化.</p>
is_uppercase(string $str): bool
↑ 如果字符串只包含小写字母,则返回 true,否则返回 false。
参数
string $str <p>输入字符串。</p>
返回值
bool <p>判断 $str 是否只包含小写字母.</p>
is_url(string $url, bool $disallow_localhost): bool
↑ 检查 $url 是否为正确的 URL。
参数
string $url
bool $disallow_localhost
返回值
bool
is_utf8(int|string|string[]|null $str, bool $strict): bool
↑ 检查传入的输入是否只包含有效的 UTF-8 字节序列。
EXAMPLE: UTF8::is_utf8(['Iñtërnâtiônàlizætiøn', 'foo']); // true // UTF8::is_utf8(["Iñtërnâtiônàlizætiøn\xA0\xA1", 'bar']); // false
参数
int|string|string[]|null $str <p>要检查的输入.</p>
bool $strict <p>检查字符串是否不是 UTF-16 或 UTF-32.</p>
返回值
bool
is_utf16(string $str, bool $check_if_string_is_binary): false|int
↑ 检查字符串是否为 UTF-16。
EXAMPLE: UTF8::is_utf16(file_get_contents('utf-16-le.txt')); // 1 // UTF8::is_utf16(file_get_contents('utf-16-be.txt')); // 2 // UTF8::is_utf16(file_get_contents('utf-8.txt')); // false
参数
string $str <p>输入字符串。</p>
bool $check_if_string_is_binary
返回值
false|int <strong>false</strong> 如果不是 UTF-16,<br> <strong>1</strong> 表示 UTF-16LE,<br> <strong>2</strong> 表示 UTF-16BE
is_utf32(string $str, bool $check_if_string_is_binary): false|int
↑ 检查字符串是否为 UTF-32。
EXAMPLE: UTF8::is_utf32(file_get_contents('utf-32-le.txt')); // 1 // UTF8::is_utf32(file_get_contents('utf-32-be.txt')); // 2 // UTF8::is_utf32(file_get_contents('utf-8.txt')); // false
参数
string $str <p>输入字符串。</p>
bool $check_if_string_is_binary
返回值
false|int <strong>false</strong> 如果不是 UTF-32,<br> <strong>1</strong> 表示 UTF-32LE,<br> <strong>2</strong> 表示 UTF-32BE
json_decode(string $json, bool $assoc, int $depth, int $options): mixed
↑ (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
解码 JSON 字符串
EXAMPLE: UTF8::json_decode('[1,"\u00a5","\u00e4"]'); // array(1, '¥', 'ä')
参数
- `string $json
要解码的 json 字符串。
此函数仅适用于 UTF-8 编码的字符串。
PHP 实现了 JSON 的超集 - 它还可以编码和解码标量类型和 NULL。JSON 标准仅支持这些值在数组或对象内部嵌套时。
` - `bool $assoc [optional]当 TRUE 时,返回的对象将转换为关联数组。
` - `int $depth [optional]用户指定的递归深度。
` - `int $options [optional]JSON 解码选项的位掩码。目前仅支持 JSON_BIGINT_AS_STRING(默认将大整数转换为浮点数)
`返回值
mixed <p>在 json 中编码的值,以适当的 PHP 类型表示。true、false 和 null(不区分大小写)分别返回为 TRUE、FALSE 和 NULL。如果 json 无法解码或编码数据超过递归限制,则返回 NULL。
json_encode(mixed $value, int $options, int $depth): false|string
↑ (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
返回值的 JSON 表示形式。
EXAMPLE: UTF8::json_encode(array(1, '¥', 'ä')); // '[1,"\u00a5","\u00e4"]'
参数
- `mixed $value
要编码的 value。可以是任何类型,但不能是资源。
所有字符串数据都必须是 UTF-8 编码。
PHP 实现了 JSON 的超集 - 它还可以编码和解码标量类型和 NULL。JSON 标准仅支持这些值在数组或对象内部嵌套时。
` - `int $options [optional]由JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS、JSON_NUMERIC_CHECK、JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、JSON_FORCE_OBJECT、JSON_UNESCAPED_UNICODE组成的位掩码。这些常量的行为在JSON常量页面上有描述。
` - `int $depth [optional]设置最大深度。必须大于零。
`返回值
false|string <p>成功时返回一个JSON编码的<strong>字符串</strong>或失败时返回<strong>FALSE</strong>。</p>
json_loaded(): bool
↑ 检查服务器上是否可用的JSON。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
lcfirst(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 将字符串的第一个字符转换为小写。
示例:UTF8::lcfirst('ÑTËRNÂTIÔNÀLIZÆTIØN'); // ñTËRNÂTIÔNÀLIZÆTIØN
参数
string $str <p>输入字符串</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string <p>结果字符串。</p>
lcwords(string $str, string[] $exceptions, string $char_list, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 将字符串中的所有单词转换为小写。
参数
string $str <p>输入字符串。</p>
string[] $exceptions [可选] <p>排除某些单词。</p>
string $char_list [可选] <p>包含在单词中且不以新单词开始的额外字符。</p>
string $encoding [可选] <p>设置字符集。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string
levenshtein(string $str1, string $str2, int $insertionCost, int $replacementCost, int $deletionCost): int
↑ 计算两个字符串之间的Levenshtein距离。
为了更好的性能,在实际应用中,如果有一个输入字符串与数据库中的多个字符串匹配,你可能只想预编码输入一次,然后使用\levenshtein()。
来源:https://github.com/KEINOS/mb_levenshtein
参数
string $str1 <p>被评估为Levenshtein距离的字符串之一。</p>
string $str2 <p>被评估为Levenshtein距离的字符串之一。</p>
int $insertionCost [可选] <p>定义插入的成本。</p>
int $replacementCost [可选] <p>定义替换的成本。</p>
int $deletionCost [可选] <p>定义删除的成本。</p>
返回值
int
ltrim(string $str, string|null $chars): string
↑ 从UTF-8字符串的开头删除空白或其他字符。
示例:UTF8::ltrim(' 中文空白 '); // '中文空白 '
参数
string $str <p>要修剪的字符串。</p>
string|null $chars <p>要删除的字符(可选)。</p>
返回值
string 从左侧删除不需要的字符的字符串
max(string|string[] $arg): string|null
↑ 返回给定数据中的UTF-8字符具有最大代码点。
示例:UTF8::max('abc-äöü-中文空白'); // 'ø'
参数
string|string[] $arg <p>UTF-8编码的字符串或字符串数组。</p>
返回值
string|null 具有比其他字符更高的代码点的字符,如果失败或输入为空,则返回null
max_chr_width(string $str): int
↑ 计算并返回给定字符串中任何UTF-8编码字符的最大字节数。
示例:UTF8::max_chr_width('Intërnâtiônàlizætiøn'); // 2
参数
string $str <p>原始Unicode字符串。</p>
返回值
int <p>给定字符的最大字节长度。</p>
mbstring_loaded(): bool
↑ 检查服务器上是否可用mbstring。
参数: 无
返回值
<strong>true</strong> 如果可用,否则 <strong>false</strong>
min(string|string[] $arg): string|null
↑ 返回给定数据中具有最小代码点的UTF-8字符。
示例:UTF8::min('abc-äöü-中文空白'); // '-'
参数
string|string[] $arg 一个UTF-8编码的字符串或此类字符串的数组。
返回值
string|null
具有比其他字符更低代码点的字符,失败或空输入时返回null。
normalize_encoding(mixed $encoding, mixed $fallback): mixed|string
↑ 规范编码-"名称"输入。
示例:UTF8::normalize_encoding('UTF8'); // 'UTF-8'
参数
mixed $encoding
例如:ISO, UTF8, WINDOWS-1251等。
string|TNormalizeEncodingFallback $fallback
例如:UTF-8
返回值
mixed|string
例如:ISO-8859-1, UTF-8, WINDOWS-1251等。
默认情况下将返回一个空字符串作为后备。
normalize_line_ending(string $str, string|string[] $replacer): string
↑ 标准化换行符为类Unix。
参数
string $str <p>输入字符串。</p>
string|string[] $replacer
替换字符,例如"\n"(Linux)或"\r\n"(Windows)。您也可以在这里使用\PHP_EOL。
返回值
string
具有标准化换行符的字符串。
normalize_msword(string $str): string
↑ 规范一些MS Word特殊字符。
示例:UTF8::normalize_msword('„Abcdef…”'); // '"Abcdef..."'
参数
string $str
要规范的字符串。
返回值
string
具有在Word文档中常用字符的规范化字符的字符串。
normalize_whitespace(string $str, bool $keep_non_breaking_space, bool $keep_bidi_unicode_controls, bool $normalize_control_characters): string
↑ 规范空白。
示例:UTF8::normalize_whitespace("abc-\xc2\xa0-öäü-\xe2\x80\xaf-\xE2\x80\xAC", true); // "abc-\xc2\xa0-öäü- -"
参数
string $str
要规范的字符串。
bool $keep_non_breaking_space [可选]
设置为true,保留非断行空格。
bool $keep_bidi_unicode_controls [可选]
设置为true,保留非可打印的(用于网络)双向文本字符。
bool $normalize_control_characters [可选]
设置为true,将例如行-、段落-分隔符转换为"\n",并将行制表符转换为"\t"。
返回值
string
具有规范化空白的字符串。
ord(string $chr, string $encoding): int
↑ 计算给定UTF-8编码字符的Unicode代码点。
INFO:与UTF8::chr()相反
示例:UTF8::ord('☃'); // 0x2603
参数
string $chr
要计算代码点的字符。
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int
给定字符的Unicode代码点,
无效的UTF-8字节序列时为0。
parse_str(string $str, array $result, bool $clean_utf8): bool
↑ 将字符串解析为数组(解析到第二个参数)。
WARNING:与"parse_str()"不同,如果第二个参数未设置,则此方法不会(重新)在当前作用域中替换变量!
示例: UTF8::parse_str('Iñtërnâtiônéàlizætiøn=測試&arr[]=foo+測試&arr[]=ການທົດສອບ', $array); echo $array['Iñtërnâtiônéàlizætiøn']; // '測試'
参数
string $str <p>输入字符串。</p>
array
$result 结果将返回到此引用参数。
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
bool
如果php无法解析字符串并且没有任何$result,则返回false。
pcre_utf8_support(): bool
↑ 检查是否可用\u修饰符,该修饰符启用PCRE中的Unicode支持。
参数: 无
返回值
- `bool
true如果支持可用,
否则为false
range(int|string $var1, int|string $var2, bool $use_ctype, string $encoding, float|int $step): list
↑ 创建包含一系列UTF-8字符的数组。
示例:UTF8::range('κ', 'ζ'); // array('κ', 'ι', 'θ', 'η', 'ζ',)
参数
int|string $var1
数值或十六进制代码点,或从其开始的UTF-8字符。
int|string $var2 <p>数字或十六进制代码点,或一个以UTF-8字符结尾的字符.</p>
bool $use_ctype <p>使用ctype来检测数字和十六进制,否则我们将使用简单的"is_numeric"。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
- `float|int $step [optional]
如果提供了步长值,它将被用作序列中元素之间的增量。步长应给出为正数。如果没有指定,步长将默认为1。
返回值
list<string>
rawurldecode(string $str, bool $multi_decode): string
↑ 多次解码HTML实体 + 修复urlencoded-win1252-chars。
示例:UTF8::rawurldecode('tes%20öäü%20\u00edtest+test'); // 'tes öäü ítest+test'
例如:'test+test' => 'test+test' 'Düsseldorf' => 'Düsseldorf' 'D%FCsseldorf' => 'Düsseldorf' 'Düsseldorf' => 'Düsseldorf' 'D%26%23xFC%3Bsseldorf' => 'Düsseldorf' 'Düsseldorf' => 'Düsseldorf' 'D%C3%BCsseldorf' => 'Düsseldorf' 'D%C3%83%C2%BCsseldorf' => 'Düsseldorf' 'D%25C3%2583%25C2%25BCsseldorf' => 'Düsseldorf'
参数
T $str <p>输入字符串.</p>
bool $multi_decode <p>尽可能多地解码。</p>
返回值
string <p>解码后的URL,作为字符串。</p>
regex_replace(string $str, string $pattern, string $replacement, string $options, string $delimiter): string
↑ 用$replacement替换字符串中所有出现的$pattern。
参数
string $str <p>输入字符串。</p>
string $pattern <p>正则表达式模式。</p>
string $replacement <p>替换字符串。</p>
string $options [optional] <p>要使用的匹配条件。</p>
string $delimiter [optional] <p>正则表达式的分隔符。默认:'/'</p>
返回值
string
remove_bom(string $str): string
↑ 从UTF-8 / UTF-16 / UTF-32字符串中删除BOM。
示例:UTF8::remove_bom("\xEF\xBB\xBFΜπορώ να"); // 'Μπορώ να'
参数
string $str <p>输入字符串。</p>
返回值
string <p>没有UTF-BOM的字符串。</p>
remove_duplicates(string $str, string|string[] $what): string
↑ 从另一个字符串中删除字符串的重复出现。
示例:UTF8::remove_duplicates('öäü-κόσμεκόσμε-äöü', 'κόσμε'); // 'öäü-κόσμε-äöü'
参数
string $str <p>基本字符串。</p>
string|string[] $what <p>在基本字符串中搜索的字符串。</p>
返回值
string <p>删除重复后的字符串。</p>
remove_html(string $str, string $allowable_tags): string
↑ 通过"strip_tags()"从字符串中移除html。
参数
string $str <p>输入字符串。</p>
- `string $allowable_tags [optional]
您可以使用可选的第二个参数来指定不应移除的标签。默认:null
返回值
string <p>没有html标签的字符串。</p>
remove_html_breaks(string $str, string $replacement): string
↑ 从字符串中移除所有中断[
| \r\n | \r | \n | ...]。
参数
string $str <p>输入字符串。</p>
string $replacement [optional] <p>默认为空字符串。</p>
返回值
string <p>没有中断的字符串。</p>
remove_ileft(string $str, string $substring, string $encoding): string
↑ 如果存在且不区分大小写,则返回一个新字符串,其中已删除前缀$substring。
参数
string $str <p>输入字符串。</p>
string $substring <p>要删除的前缀。</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string <p>没有前缀$substring的字符串。</p>
remove_invisible_characters(string $str, bool $url_encoded, string $replacement, bool $keep_basic_control_characters): string
↑ 从字符串中删除不可见字符。
e.g.: 这防止了在ascii字符之间嵌入空字符,如Java\0script。
示例:UTF8::remove_invisible_characters("κόσ\0με"); // 'κόσμε'
从 https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/Common.php 复制并粘贴
参数
string $str <p>输入字符串。</p>
- `bool $url_encoded [optional]
尝试移除URL编码的控制字符。警告:可能包含误报,例如 aa%0Baa -> aaaa。
默认值:false` - `字符串 $replacement [可选]
替换字符。
` - `布尔值 $keep_basic_control_characters [可选]保留控制字符如 [LRM] 或 [LSEP]。
`返回值
字符串 <p>一个没有不可见字符的字符串.</p>
remove_iright(string $str, string $substring, string $encoding): string
↑ 如果存在,返回一个移除了后缀 $substring 的新字符串,不区分大小写。
参数
string $str
string $substring <p>要移除的后缀.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string <p>一个没有后缀 $substring 的字符串 $str.</p>
remove_left(string $str, string $substring, string $encoding): string
↑ 如果存在,返回一个移除了前缀 $substring 的新字符串。
参数
string $str <p>输入字符串。</p>
string $substring <p>要删除的前缀。</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string <p>没有前缀$substring的字符串。</p>
remove_right(string $str, string $substring, string $encoding): string
↑ 如果存在,返回一个移除了后缀 $substring 的新字符串。
参数
string $str
string $substring <p>要移除的后缀.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string <p>一个没有后缀 $substring 的字符串 $str.</p>
replace(string $str, string $search, string $replacement, bool $case_sensitive): string
↑ 将 $str 中的所有 $search 替换为 $replacement。
参数
string $str <p>输入字符串。</p>
string $search <p>要搜索的针(字符串).</p>
string $replacement <p>替换字符串。</p>
bool $case_sensitive [可选] <p>是否强制大小写敏感。默认:true</p>
返回值
string <p>替换部分后的字符串.</p>
replace_all(string $str, string[] $search, string|string[] $replacement, bool $case_sensitive): string
↑ 将 $str 中的所有 $search 替换为 $replacement。
参数
string $str <p>输入字符串。</p>
string[] $search <p>要搜索的元素数组.</p>
string|string[] $replacement <p>要替换的字符串或字符串数组.</p>
bool $case_sensitive [可选] <p>是否强制大小写敏感。默认:true</p>
返回值
string <p>替换部分后的字符串.</p>
replace_diamond_question_mark(string $str, string $replacement_char, bool $process_invalid_utf8_chars): string
↑ 用替换字符替换菱形问号(�)和无效的 UTF-8 字符。
示例:UTF8::replace_diamond_question_mark('中文空白�', ''); // '中文空白'
参数
string $str <p>输入字符串</p>
string $replacement_char <p>替换字符.</p>
bool $process_invalid_utf8_chars <p>转换无效的 UTF-8 字符 </p>
返回值
string <p>没有菱形问号(�)的字符串.</p>
rtrim(string $str, string|null $chars): string
↑ 从 UTF-8 字符串的末尾删除空白或其他字符。
示例:UTF8::rtrim('-ABC-中文空白- '); // '-ABC-中文空白-'
参数
string $str <p>要修剪的字符串.</p>
string|null $chars <p>要删除的字符(可选).</p>
返回值
string <p>从右侧删除了不需要的字符的字符串.</p>
showSupport(bool $useEcho): string|void
↑ 警告:默认打印本机 UTF-8 支持(库),例如用于调试。
参数
bool $useEcho
返回值
string|void
single_chr_html_encode(string $char, bool $keep_ascii_chars, string $encoding): string
↑ 将 UTF-8 字符转换为 HTML 数字实体,如 "{".
示例:UTF8::single_chr_html_encode('κ'); // 'κ'
参数
T $char <p>要编码为数字实体的 Unicode 字符.</p>
bool $keep_ascii_chars <p>设置为 <strong>true</strong> 以保留 ASCII 字符.</>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>给定字符的 HTML 数字实体.</p>
spaces_to_tabs(string $str, int $tab_length): string
参数
T $str
int<1, max> $tab_length
返回值
string
str_camelize(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 返回字符串的驼峰式版本。去除周围空格,将数字、空格、破折号和下划线后面的字母大写,并去除空格、破折号以及下划线。
参数
string $str <p>输入字符串。</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string
str_capitalize_name(string $str): string
↑ 返回首字母大写的字符串,但单词为名称时不进行大写。
参数
string $str
返回值
string <p>字符串 $str 已大写.</p>
str_contains(string $haystack, string $needle, bool $case_sensitive): bool
↑ 如果字符串包含 $needle,则返回 true,否则返回 false。默认情况下比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来进行不区分大小写的比较。
参数
string $haystack <p>输入字符串.</p>
string $needle <p>要查找的子字符串.</p>
bool $case_sensitive [可选] <p>是否强制大小写敏感。默认:true</p>
返回值
bool <p>是否 $haystack 包含 $needle.</p>
str_contains_all(string $haystack, scalar[] $needles, bool $case_sensitive): bool
↑ 如果字符串包含所有 $needles,则返回 true,否则返回 false。默认情况下比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来进行不区分大小写的比较。
参数
string $haystack <p>输入字符串.</p>
scalar[] $needles <p>要查找的子字符串数组.</p>
bool $case_sensitive [可选] <p>是否强制大小写敏感。默认:true</p>
返回值
bool <p>是否 $haystack 包含 $needle.</p>
str_contains_any(string $haystack, scalar[] $needles, bool $case_sensitive): bool
↑ 如果字符串包含任何 $needles,则返回 true,否则返回 false。默认情况下比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来进行不区分大小写的比较。
参数
string $haystack <p>输入字符串.</p>
scalar[] $needles <p>要查找的子字符串数组.</p>
bool $case_sensitive [可选] <p>是否强制大小写敏感。默认:true</p>
返回值
bool <p>是否 $str 包含 $needle.</p>
str_dasherize(string $str, string $encoding): string
↑ 返回由破折号分隔的、小写且去除周围空格的字符串。在字符串的第一个字符之前插入破折号,在空格和下划线处也插入破折号。
参数
string $str <p>输入字符串。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_delimit(string $str, string $delimiter, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 返回由指定分隔符分隔的小写且去除周围空格的字符串。
分隔符插入在字符大写之前(字符串的第一个字符除外),以及在空格、破折号和下划线处。字母分隔符不转换为小写。
示例: UTF8::str_delimit('test case, '#'); // 'test#case' UTF8::str_delimit('test -case', ''); // 'testcase'
参数
T $str <p>输入字符串.</p>
string $delimiter <p>用于分隔字符串各部分的序列.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string
str_detect_encoding(string $str): false|string
↑ 优化的 "mb_detect_encoding()" 函数 -> 支持UTF-16和UTF-32。
示例: UTF8::str_detect_encoding('中文空白'); // 'UTF-8' UTF8::str_detect_encoding('Abc'); // 'ASCII'
参数
string $str <p>输入字符串。</p>
返回值
- `false|string
检测到的字符串编码,例如 UTF-8 或 UTF-16BE,
否则将返回 false,例如对于二进制或未检测到的编码。
str_ends_with(string $haystack, string $needle): bool
↑ 检查字符串是否以指定的子字符串结尾。
示例: UTF8::str_ends_with('BeginMiddleΚόσμε', 'Κόσμε'); // true UTF8::str_ends_with('BeginMiddleΚόσμε', 'κόσμε'); // false
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
bool
str_ends_with_any(string $str, string[] $substrings): bool
↑ 如果字符串以任何 $substrings 结尾,则返回 true,否则返回 false。
- 区分大小写
参数
string $str <p>输入字符串。</p>
string[] $substrings <p>要查找的子字符串数组.</p>
返回值
布尔值 <p>字符串 $str 是否以 $substring 结尾.</p>
str_ensure_left(string $str, string $substring)
↑ 确保字符串以 $substring 开头。如果不开头,则在其前添加。
参数
T $str <p>输入字符串.</p>
TSub $substring <p>如果不存在,要添加的子字符串.</p>
返回值
TSub 是非空字符串 ? 非空字符串 : (T 是非空字符串 ? 非空字符串 : 字符串
str_ensure_right(string $str, string $substring): string
↑ 确保字符串以 $substring 结尾。如果结尾不是,则添加。
参数
T $str <p>输入字符串.</p>
TSub $substring <p>如果不存在,要添加的子字符串.</p>
返回值
string
str_humanize(string $str): string
↑ 将字符串的第一个单词大写,将下划线替换为空格,并去除 '_id'。
参数
string $str
返回值
string
str_iends_with(string $haystack, string $needle): bool
↑ 检查字符串是否以指定的子字符串结尾,不区分大小写。
示例: UTF8::str_iends_with('BeginMiddleΚόσμε', 'Κόσμε'); // true UTF8::str_iends_with('BeginMiddleΚόσμε', 'κόσμε'); // true
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
bool
str_iends_with_any(string $str, string[] $substrings): bool
↑ 如果字符串以任何 $substrings 结尾,则返回 true,否则返回 false。
- 不区分大小写
参数
string $str <p>输入字符串。</p>
string[] $substrings <p>要查找的子字符串数组.</p>
返回值
布尔值 <p>字符串 $str 是否以 $substring 结尾.</p>
str_insert(string $str, string $substring, int $index, string $encoding): string
↑ 在提供的 $index 处将 $substring 插入字符串。
参数
string $str <p>输入字符串。</p>
string $substring <p>要插入的字符串.</p>
int $index <p>插入子字符串的索引位置.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_ireplace(string|string[] $search, string|string[] $replacement, string|string[] $subject, int $count): string|string[]
↑ str_replace 的不区分大小写和 UTF-8 安全版本。
示例: UTF8::str_ireplace('lIzÆ', 'lise', 'Iñtërnâtiônàlizætiøn'); // 'Iñtërnâtiônàlisetiøn'
参数
- `string|string[] $search
每个与搜索数组中的替换都会在之前的替换结果上执行。
替换内容。
` - `TStrIReplaceSubject $subject如果主题是数组,则对主题的每个条目执行搜索和替换,返回值也是一个数组。
` - `int $count [可选]将返回通过引用传递的 count 中的匹配和替换针的数量。
`返回值
string|string[] <p>一个字符串或替换的数组.</p>
str_ireplace_beginning(string $str, string $search, string $replacement): string
↑ 从字符串开头替换 $search 为 $replacement。
参数
string $str <p>输入字符串。</p>
string $search <p>要搜索的字符串.</p>
string $replacement <p>替换内容.</p>
返回值
string <p>替换后的字符串.</p>
str_ireplace_ending(string $str, string $search, string $replacement): string
↑ 从字符串末尾替换 $search 为 $replacement。
参数
string $str <p>输入字符串。</p>
string $search <p>要搜索的字符串.</p>
string $replacement <p>替换内容.</p>
返回值
string <p>替换后的字符串.</p>
str_istarts_with(string $haystack, string $needle): bool
↑ 检查字符串是否以指定的子字符串开头,不区分大小写。
示例: UTF8::str_istarts_with('ΚόσμεMiddleEnd', 'Κόσμε'); // true UTF8::str_istarts_with('ΚόσμεMiddleEnd', 'κόσμε'); // true
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
bool
str_istarts_with_any(string $str, scalar[] $substrings): bool
↑ 如果字符串以 $substrings 中的任何子字符串开头,则返回 true,否则返回 false。
- 不区分大小写
参数
string $str <p>输入字符串。</p>
scalar[] $substrings <p>要查找的子字符串.</p>
返回值
bool <p>字符串 $str 是否以 $substring 开头.</p>
str_isubstr_after_first_separator(string $str, string $separator, string $encoding): string
↑ 获取第一个分隔符出现后的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_isubstr_after_last_separator(string $str, string $separator, string $encoding): string
获取分隔符最后一次出现后的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_isubstr_before_first_separator(string $str, string $separator, string $encoding): string
获取分隔符第一次出现前的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_isubstr_before_last_separator(string $str, string $separator, string $encoding): string
获取分隔符最后一次出现前的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_isubstr_first(string $str, string $needle, bool $before_needle, string $encoding): string
获取"$needle"第一次出现后的子字符串(或通过"$before_needle"在"$needle"之前)。
参数
string $str <p>输入字符串。</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_isubstr_last(string $str, string $needle, bool $before_needle, string $encoding): string
获取"$needle"最后一次出现后的子字符串(或通过"$before_needle"在"$needle"之前)。
参数
string $str <p>输入字符串。</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_last_char(string $str, int $n, string $encoding): string
返回字符串的最后$n个字符。
参数
string $str <p>输入字符串。</p>
int $n <p>从末尾获取的字符数.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_limit(string $str, int $length, string $str_add_on, string $encoding): string
限制字符串中的字符数。
参数
T $str <p>输入字符串.</p>
int<1, max> $length [optional] <p>默认: 100</p>
string $str_add_on [optional] <p>默认: …</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_limit_after_word(string $str, int $length, string $str_add_on, string $encoding): string
限制字符串中的字符数,并在下一个单词之后。
EXAMPLE: UTF8::str_limit_after_word('fòô bàř fòô', 8, ''); // 'fòô bàř'
参数
T $str <p>输入字符串.</p>
int<1, max> $length [optional] <p>默认: 100</p>
string $str_add_on [optional] <p>默认: …</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_longest_common_prefix(string $str1, string $str2, string $encoding): string
返回$str1和$str2之间的最长公共前缀。
参数
string $str1 <p>输入字符串.</p>
string $str2 <p>用于比较的第二个字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_longest_common_substring(string $str1, string $str2, string $encoding): string
返回$str1和$str2之间的最长公共子串。
在发生冲突的情况下,返回第一个出现的子串。
参数
string $str1
string $str2 <p>用于比较的第二个字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>具有最长公共子串的字符串.</p>
str_longest_common_suffix(string $str1, string $str2, string $encoding): string
返回$str1和$str2之间的最长公共后缀。
参数
string $str1
string $str2 <p>用于比较的第二个字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string
str_matches_pattern(string $str, string $pattern): bool
返回true如果$str与提供的模式匹配,否则返回false。
参数
string $str <p>输入字符串。</p>
string $pattern <p>正则表达式模式,用于匹配.</p>
返回值
bool <p>是否$str与模式匹配.</p>
str_obfuscate(string $str, float $percent, string $obfuscateChar, string[] $keepChars): string
将字符串转换为混淆字符串。
EXAMPLE:
UTF8::str_obfuscate('[email protected]', 0.5, '', ['@', '.']); // 例如 "l**@m**lleke*.r"
参数
string $str
浮点数 $percent
字符串 $obfuscateChar
字符串数组 $keepChars
返回值
字符串 <p>加密字符串.</p>
str_offset_exists(string $str, int $offset, string $encoding): bool
↑ 返回索引处是否存在字符。偏移量可以是负数,从字符串的最后一个字符开始计数。实现了 ArrayAccess 接口的一部分。
参数
string $str <p>输入字符串。</p>
int $offset <p>要检查的索引.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
bool <p>索引是否存在.</p>
str_offset_get(string $str, int $index, string $encoding): string
↑ 返回给定索引处的字符。偏移量可以是负数,从字符串的最后一个字符开始计数。实现了 ArrayAccess 接口,并且如果索引不存在则抛出 OutOfBoundsException。
参数
string $str <p>输入字符串。</p>
int<1, max> $index <p>从该索引检索字符的索引.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>指定索引处的字符.</p>
str_pad(string $str, int $pad_length, string $pad_string, int|string $pad_type, string $encoding): string
↑ 使用另一个字符串填充 UTF-8 字符串到指定长度。
示例: UTF8::str_pad('中文空白', 10, '_', STR_PAD_BOTH); // '中文空白'
参数
string $str <p>输入字符串。</p>
int $pad_length <p>返回字符串的长度.</p>
string $pad_string [可选] <p>用于填充输入字符串的字符串.</p>
- `int|string $pad_type [可选]
可以是 STR_PAD_RIGHT (默认),[或字符串 "right"]
STR_PAD_LEFT [或字符串 "left"] 或
STR_PAD_BOTH [或字符串 "both"]
默认: 'UTF-8'
`返回值
string <p>返回填充后的字符串.</p>
str_pad_both(string $str, int $length, string $pad_str, string $encoding): string
↑ 返回一个长度给定的新字符串,使得字符串的两端都填充。是 "UTF8::str_pad()" 的别名,其中 $pad_type 为 'both'。
参数
string $str
int $length <p>填充后所需的字符串长度.</p>
string $pad_str [可选] <p>用于填充的字符串,默认为空格。默认: ' '</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>应用填充的字符串.</p>
str_pad_left(string $str, int $length, string $pad_str, string $encoding): string
↑ 返回一个长度给定的新字符串,使得字符串的开始部分填充。是 "UTF8::str_pad()" 的别名,其中 $pad_type 为 'left'。
参数
string $str
int $length <p>填充后所需的字符串长度.</p>
string $pad_str [可选] <p>用于填充的字符串,默认为空格。默认: ' '</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>应用左填充的字符串.</p>
str_pad_right(string $str, int $length, string $pad_str, string $encoding): string
↑ 返回一个长度给定的新字符串,使得字符串的末尾部分填充。是 "UTF8::str_pad()" 的别名,其中 $pad_type 为 'right'。
参数
string $str
int $length <p>填充后所需的字符串长度.</p>
string $pad_str [可选] <p>用于填充的字符串,默认为空格。默认: ' '</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>应用右填充的字符串.</p>
str_repeat(string $str, int $multiplier): string
↑ 重复一个字符串。
示例: UTF8::str_repeat("°~\xf0\x90\x28\xbc", 2); // '°
ð�(¼°ð�(¼'
参数
- `T $str
要重复的字符串。
输入字符串应重复的次数。
multiplier 必须大于或等于 0。如果 multiplier 设置为 0,则函数将返回空字符串。
`返回值
string <p>重复的字符串.</p>
str_replace_beginning(string $str, string $search, string $replacement): string
↑ 从字符串开头替换 $search 为 $replacement。
参数
string $str <p>输入字符串。</p>
string $search <p>要搜索的字符串.</p>
string $replacement <p>替换内容.</p>
返回值
string <p>替换后的字符串.</p>
str_replace_ending(string $str, string $search, string $replacement): string
↑ 从字符串末尾替换 $search 为 $replacement。
参数
string $str <p>输入字符串。</p>
string $search <p>要搜索的字符串.</p>
string $replacement <p>替换内容.</p>
返回值
string <p>替换后的字符串.</p>
str_replace_first(string $search, string $replace, string $subject): string
↑ 将第一个 "$search" 替换为 "$replace"。
参数
string $search
string $replace
string $subject
返回值
string
str_replace_last(string $search, string $replace, string $subject): string
↑ 将最后一个 "$search" 替换为 "$replace"。
参数
string $search
string $replace
string $subject
返回值
string
str_shuffle(string $str, string $encoding): string
↑ 打乱字符串中的所有字符。
INFO: 使用随机算法,对加密目的而言较弱
EXAMPLE: UTF8::str_shuffle('fòô bàř fòô'); // 'àòôřb ffòô '
参数
T $str <p>输入字符串</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>打乱后的字符串.</p>
str_slice(string $str, int $start, int|null $end, string $encoding): false|string
↑ 返回从 $start 开始,到但不包括 $end 指定索引的子字符串。如果省略 $end,则函数提取剩余的字符串。如果 $end 为负,则从字符串末尾计算。
参数
string $str
int $start <p>提取开始的初始索引.</p>
int|null $end [optional] <p>结束提取的索引。默认:null</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
false|string <p>提取的子字符串.</p><p>如果 <i>str</i> 的长度小于 <i>start</i> 个字符,则返回 <b>FALSE</b>。
str_snakeize(string $str, string $encoding): string
↑ 将字符串转换为例如:"snake_case"。
参数
string $str
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>snake_case 格式的字符串.</p>
str_sort(string $str, bool $unique, bool $desc): string
↑ 根据代码点对字符进行排序。
EXAMPLE: UTF8::str_sort(' -ABC-中文空白- '); // ' ---ABC中文白空'
参数
string $str <p>UTF-8 字符串。</p>
bool $unique <p>唯一排序。如果 <strong>true</strong>,则忽略重复字符.</p>
bool $desc <p>如果 <strong>true</strong>,则按逆代码点顺序排序字符.</p>
返回值
string <p>排序后的字符字符串.</p>
str_split(int|string $str, int $length, bool $clean_utf8, bool $try_to_use_mb_functions): list
↑ 将字符串转换为 Unicode 字符数组。
EXAMPLE: UTF8::str_split('中文空白'); // array('中', '文', '空', '白')
参数
int|string $str <p>要分割成数组的字符串或 int.</p>
int<1, max> $length [optional] <p>数组元素的每个最大字符长度.</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
bool $try_to_use_mb_functions [optional] <p>设置为 false,如果您不想使用 "mb_substr"</p>
返回值
list<string> <p>包含输入字符块的数组.</p>
str_split_array(int[]|string[] $input, int $length, bool $clean_utf8, bool $try_to_use_mb_functions): list<list>
↑ 将字符串转换为 Unicode 字符数组。
EXAMPLE: UTF8::str_split_array(['中文空白', 'test'], 2); // [['中文', '空白'], ['te', 'st']]
参数
int[]|string[] $input <p>要分割成数组的 string[] 或 int[].</p>
int<1, max> $length [optional] <p>数组元素的每个最大字符长度.</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
bool $try_to_use_mb_functions [optional] <p>设置为 false,如果您不想使用 "mb_substr"</p>
返回值
list<list<string>> <p>包含输入块的数组.</p>
str_split_pattern(string $str, string $pattern, int $limit): string[]
↑ 使用提供的正则表达式分割字符串,返回字符串数组。可选整数 $limit 将截断结果。
参数
string $str
string $pattern <p>用于分割字符串的正则表达式.</p>
int $limit [optional] <p>返回的最大结果数。默认:-1 === 无限制</p>
返回值
string[] <p>字符串数组.</p>
str_starts_with(string $haystack, string $needle): bool
↑ 检查字符串是否以给定的子字符串开头。
EXAMPLE: UTF8::str_starts_with('ΚόσμεMiddleEnd', 'Κόσμε'); // true UTF8::str_starts_with('ΚόσμεMiddleEnd', 'κόσμε'); // false
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
bool
str_starts_with_any(string $str, scalar[] $substrings): bool
↑ 如果字符串以 $substrings 中的任何子字符串开头,则返回 true,否则返回 false。
- 区分大小写
参数
string $str <p>输入字符串。</p>
scalar[] $substrings <p>要查找的子字符串.</p>
返回值
bool <p>字符串 $str 是否以 $substring 开头.</p>
str_substr_after_first_separator(string $str, string $separator, string $encoding): string
↑ 获取第一个分隔符出现后的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_substr_after_last_separator(string $str, string $separator, string $encoding): string
获取分隔符最后一次出现后的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_substr_before_first_separator(string $str, string $separator, string $encoding): string
获取分隔符第一次出现前的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_substr_before_last_separator(string $str, string $separator, string $encoding): string
获取分隔符最后一次出现前的子字符串。
参数
string $str <p>输入字符串。</p>
string $separator <p>字符串分隔符.</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_substr_first(string $str, string $needle, bool $before_needle, string $encoding): string
获取"$needle"第一次出现后的子字符串(或通过"$before_needle"在"$needle"之前)。
参数
string $str <p>输入字符串。</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_substr_last(string $str, string $needle, bool $before_needle, string $encoding): string
获取"$needle"最后一次出现后的子字符串(或通过"$before_needle"在"$needle"之前)。
参数
string $str <p>输入字符串。</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string
str_surround(string $str, string $substring): string
↑ 用给定的子字符串包围 $str。
参数
T $str
TSub $substring <p>要添加到两侧的子字符串</p>
返回值
string <p>添加了子字符串的前缀和后缀的字符串</p>
str_titleize(string $str, string[]|null $ignore, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length, bool $use_trim_first, string|null $word_define_chars): string
↑ 返回首字母大写的缩进字符串。
也接受一个数组,$ignore,允许您列出不进行大写的单词。
参数
string $str
string[]|null $ignore [optional] <p>不进行大写的单词数组或null。默认:null</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
bool $use_trim_first [optional] <p>true === 首先修剪输入字符串</p>
string|null $word_define_chars [optional] <p>用作空格分隔符的字符字符串 === 单词.</p>
返回值
string <p>大写的字符串.</p>
str_titleize_for_humans(string $str, string[] $ignore, string $encoding): string
↑ 返回正确的标题大小写的缩进字符串。
也接受一个数组,$ignore,允许您列出不进行大写的单词。
改编自John Gruber的脚本。
参数
string $str
string[] $ignore <p>不进行大写的单词数组.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>大写的字符串.</p>
str_to_binary(string $str): false|string
↑ 获取特定字符串的二进制表示。
示例:UTF8::str_to_binary('😃'); // '11110000100111111001100010000011'
参数
string $str <p>输入字符串。</p>
返回值
false|string <p>错误时返回false</p>
str_to_lines(string $str, bool $remove_empty_values, int|null $remove_short_values): string[]
参数
string $str
bool $remove_empty_values <p>删除空值</p>
int|null $remove_short_values <p>最小字符串长度或null以禁用</p>
返回值
string[]
str_to_words(string $str, string $char_list, bool $remove_empty_values, int|null $remove_short_values): list
↑ 将字符串转换为单词数组。
示例:UTF8::str_to_words('中文空白 oöäü#s', '#') // array('', '中文空白', ' ', 'oöäü#s', '')
参数
string $str
string $char_list <p>定义“单词”的额外字符</p>
bool $remove_empty_values <p>删除空值</p>
int|null $remove_short_values <p>最小字符串长度或null以禁用</p>
返回值
list<string>
str_truncate(string $str, int $length, string $substring, string $encoding): string
↑ 将字符串截断到给定的长度。如果提供了 $substring,并且发生截断,则进一步截断字符串,以便子字符串可以附加而不超过所需的长度。
参数
string $str
int $length <p>截断字符串的期望长度.</p>
string $substring [optional] <p>如果可以适应,则附加的子字符串。默认:''</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
返回值
string <p>截断后的字符串.</p>
str_truncate_safe(string $str, int $length, string $substring, string $encoding, bool $ignore_do_not_split_words_for_one_word): string
↑ 将字符串截断到给定的长度,同时确保它不分割单词。如果提供了 $substring,并且发生截断,则进一步截断字符串,以便子字符串可以附加而不超过所需的长度。
参数
string $str
int $length <p>截断字符串的期望长度.</p>
string $substring [optional] <p>如果可以适应,则附加的子字符串。默认:''</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
bool $ignore_do_not_split_words_for_one_word [optional] <p>默认:false</p>
返回值
string <p>截断后的字符串.</p>
str_underscored(string $str): string
↑ 返回由下划线分隔的小写和修剪后的字符串。
在下划线字符之前插入下划线(字符串的第一个字符除外),以及替换空格和破折号。
参数
string $str
返回值
字符串 <p>下划线字符串.</p>
str_upper_camelize(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 返回所提供字符串的大驼峰形式。它修剪周围的空格,将数字、空格、破折号和下划号之后的字母转换为大写,并移除空格、破折号和下划线。
参数
string $str <p>输入字符串。</p>
string $encoding [optional] <p>默认: 'UTF-8'</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
字符串 <p>大驼峰形式的字符串.</p>
str_word_count(string $str, int $format, string $char_list): int|string[]
↑ 获取特定字符串中的单词数量。
示例: // 格式:0 -> 返回单词数量(int) // UTF8::str_word_count('中文空白 öäü abc#c'); // 4 UTF8::str_word_count('中文空白 öäü abc#c', 0, '#'); // 3
// 格式:1 -> 返回单词数组 // UTF8::str_word_count('中文空白 öäü abc#c', 1); // array('中文空白', 'öäü', 'abc', 'c') UTF8::str_word_count('中文空白 öäü abc#c', 1, '#'); // array('中文空白', 'öäü', 'abc#c')
// 格式:2 -> 返回带偏移量的单词数组 // UTF8::str_word_count('中文空白 öäü ab#c', 2); // array(0 => '中文空白', 5 => 'öäü', 9 => 'abc', 13 => 'c') UTF8::str_word_count('中文空白 öäü ab#c', 2, '#'); // array(0 => '中文空白', 5 => 'öäü', 9 => 'abc#c')
参数
string $str <p>输入字符串。</p>
- `0|1|2 $format [可选]
0 => 返回单词数量(默认)
1 => 返回单词数组
2 => 返回带单词偏移量的数组
包含单词且不以新单词开头的附加字符。
`返回值
int|string[] <p>字符串中的单词数量.</p>
strcasecmp(string $str1, string $str2, string $encoding): int
↑ 不区分大小写的字符串比较。
INFO: UTF8::strcmp()的不区分大小写版本
示例: UTF8::strcasecmp("iñtërnâtiôn\nàlizætiøn", "Iñtërnâtiôn\nàlizætiøn"); // 0
参数
string $str1 <p>第一个字符串.</p>
string $str2 <p>第二个字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int <strong>< 0</strong> 如果str1小于str2;<br> <strong>> 0</strong> 如果str1大于str2;<br> <strong>0</strong> 如果它们相等
strcmp(string $str1, string $str2): int
↑ 区分大小写的字符串比较。
示例: UTF8::strcmp("iñtërnâtiôn\nàlizætiøn", "iñtërnâtiôn\nàlizætiøn"); // 0
参数
string $str1 <p>第一个字符串.</p>
string $str2 <p>第二个字符串.</p>
返回值
int <strong>< 0</strong> 如果str1小于str2
<strong>> 0</strong> 如果str1大于str2
<strong>0</strong> 如果它们相等
strcspn(string $str, string $char_list, int $offset, int|null $length, string $encoding): int
↑ 查找不匹配掩码的初始段长度。
参数
string $str
string $char_list
int $offset
int|null $length
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int
string(int|int[]|string|string[] $intOrHex): string
↑ 从代码点创建UTF-8字符串。
INFO: 与UTF8::codepoints()相反
示例: UTF8::string(array(246, 228, 252)); // 'öäü'
参数
int[]|numeric-string[]|int|numeric-string $intOrHex <p>整数或十六进制代码点.</p>
返回值
字符串 <p>UTF-8编码的字符串.</p>
string_has_bom(string $str): bool
↑ 检查字符串是否以"BOM"(字节顺序标记字符)开头。
示例: UTF8::string_has_bom("\xef\xbb\xbf foobar"); // true
参数
string $str <p>输入字符串。</p>
返回值
- `bool
true 如果字符串以BOM开头,
否则为false
strip_tags(string $str, string|null $allowable_tags, bool $clean_utf8): string
↑ 从字符串中删除HTML和PHP标签,并清理无效的UTF-8。
示例: UTF8::strip_tags("κόσμε\xa0\xa1"); // 'κόσμε'
参数
- `string $str
输入字符串。
您可以使用可选的第二个参数来指定不应被移除的标签。
HTML注释和PHP标签也会被移除。这是硬编码的,不能用allowable_tags更改。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
string <p>被移除的字符串.</p>
strip_whitespace(string $str): string
↑ 移除所有空白字符。这包括制表符和换行符,以及多字节空白,如细空格和表意空格。
示例: UTF8::strip_whitespace(' Ο συγγραφέας '); // 'Οσυγγραφέας'
参数
string $str
返回值
string
stripos(string $haystack, string $needle, int $offset, string $encoding, bool $clean_utf8): false|int
↑ 在字符串中查找子串第一次出现的位置,不区分大小写。
信息:使用UTF8::stripos_in_byte()获取字节长度
示例: UTF8::stripos('aσσb', 'ΣΣ'); // 1
(σσ == ΣΣ)
参数
string $haystack <p>从该字符串中获取子串第一次出现位置的字符串.</p>
string $needle <p>在haystack中查找的字符串.</p>
int $offset [可选] <p>在haystack中开始搜索的位置.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
false|int 返回子串在haystack字符串中第一次出现的数值位置,如果子串未找到,则返回false
stripos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子串第一次出现的位置,不区分大小写。
参数
- `string $haystack
要检查的字符串。
从haystack开始计算的位置。
` - `int $offset [可选]搜索偏移量。如果没有指定,则使用0。
`返回值
false|int <p>子串在haystack字符串中第一次出现的数值位置。如果子串未找到,则返回false.</p>
stristr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 返回从第一次出现子串开始(包括子串)到结束的所有haystack。
示例: $str = 'iñtërnâtiônàlizætiøn'; $search = 'NÂT';
UTF8::stristr($str, $search)); // 'nâtiônàlizætiøn' UTF8::stristr($str, $search, true)); // 'iñtër'
参数
string $haystack <p>输入字符串。必须是有效的UTF-8.</p>
string $needle <p>要查找的字符串。必须是有效的UTF-8.</p>
- `bool $before_needle [可选]
如果 TRUE,则返回从第一次出现子串之前的部分(不包括子串)。
设置字符集,例如“mb_”函数。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
false|string <p>子串,如果子串未找到,则返回false.</p>
strlen(string $str, string $encoding, bool $clean_utf8): false|int
↑ 获取字符串长度,而不是字节长度!
信息:使用UTF8::strwidth()获取字符长度
示例: UTF8::strlen("Iñtërnâtiôn\xE9àlizætiøn")); // 20
参数
string $str <p>检查长度的字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
- `false|int
字符串 $str 在具有编码 $encoding 的情况下字符的数目 (int)。一个多字节字符计为+1。
如果 e.g. mbstring 未安装并且我们处理无效字符,则可以返回 false。`
strlen_in_byte(string $str): int
↑ 获取字符串的字节长度。
参数
string $str
返回值
int
strnatcasecmp(string $str1, string $str2, string $encoding): int
↑ 使用“自然顺序”算法进行不区分大小写的字符串比较。
信息:UTF8::strcasecmp()的自然顺序版本
示例: UTF8::strnatcasecmp('2', '10Hello WORLD 中文空白!'); // -1 UTF8::strcasecmp('2Hello world 中文空白!', '10Hello WORLD 中文空白!'); // 1
UTF8::strnatcasecmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // 1 UTF8::strcasecmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // -1
参数
string $str1 <p>第一个字符串.</p>
string $str2 <p>第二个字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int <strong>< 0</strong> 如果str1小于str2
<strong>> 0</strong> 如果str1大于str2
<strong>0</strong> 如果它们相等
strnatcmp(string $str1, string $str2): int
↑ 使用“自然排序”算法的字符串比较
INFO: UTF8::strcmp()的自然排序版本
EXAMPLES: UTF8::strnatcmp('2Hello world 中文空白!', '10Hello WORLD 中文空白!'); // -1 UTF8::strcmp('2Hello world 中文空白!', '10Hello WORLD 中文空白!'); // 1
UTF8::strnatcmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // 1 UTF8::strcmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // -1
参数
string $str1 <p>第一个字符串.</p>
string $str2 <p>第二个字符串.</p>
返回值
int <strong>< 0</strong> if str1 is less than str2;<br> <strong>> 0</strong> if str1 is greater than str2;<br> <strong>0</strong> if they are equal
strncasecmp(string $str1, string $str2, int $len, string $encoding): int
↑ 比较字符串的前n个字符,忽略大小写。
EXAMPLE: UTF8::strcasecmp("iñtërnâtiôn\nàlizætiøn321", "iñtërnâtiôn\nàlizætiøn123", 5); // 0
参数
string $str1 <p>第一个字符串.</p>
string $str2 <p>第二个字符串.</p>
int $len <p>用于比较的字符串长度.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int <strong>< 0</strong> if <i>str1</i> is less than <i>str2</i>;<br> <strong>> 0</strong> if <i>str1</i> is greater than <i>str2</i>;<br> <strong>0</strong> if they are equal
strncmp(string $str1, string $str2, int $len, string $encoding): int
↑ 比较字符串的前n个字符。
EXAMPLE: UTF8::strncmp("Iñtërnâtiôn\nàlizætiøn321", "Iñtërnâtiôn\nàlizætiøn123", 5); // 0
参数
string $str1 <p>第一个字符串.</p>
string $str2 <p>第二个字符串.</p>
int $len <p>比较中使用的字符数.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int <strong>< 0</strong> if <i>str1</i> is less than <i>str2</i>;<br> <strong>> 0</strong> if <i>str1</i> is greater than <i>str2</i>;<br> <strong>0</strong> if they are equal
strpbrk(string $haystack, string $char_list): false|string
↑ 在字符串中搜索一组字符中的任何一个。
EXAMPLE: UTF8::strpbrk('-中文空白-', '白'); // '白-'
参数
string $haystack <p>查找char_list的字符串.</p>
string $char_list <p>此参数区分大小写.</p>
返回值
false|string <p>从找到的字符开始的字符串,或如果没有找到则返回false.</p>
strpos(string $haystack, int|string $needle, int $offset, string $encoding, bool $clean_utf8): false|int
↑ 在字符串中查找子字符串首次出现的位置。
INFO: 使用UTF8::strpos_in_byte()获取字节长度
EXAMPLE: UTF8::strpos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 8
参数
string $haystack <p>从该字符串中获取子串第一次出现位置的字符串.</p>
int|string $needle <p>要查找的字符串,在haystack中查找.<br>或作为int的码点.</p>
int $offset [optional] <p>搜索偏移量。如果未指定,则使用0.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
false|int The <strong>(int)</strong> numeric position of the first occurrence of needle in the haystack string.<br> If needle is not found it returns false.
strpos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子字符串首次出现的位置。
参数
- `string $haystack
要检查的字符串。
从haystack开始计算的位置。
` - `int $offset [可选]搜索偏移量。如果没有指定,则使用0。
`返回值
false|int <p>子串在haystack字符串中第一次出现的数值位置。如果子串未找到,则返回false.</p>
strrchr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 在另一个字符串中查找字符的最后一个出现。
EXAMPLE: UTF8::strrchr('κόσμεκόσμε-äöü', 'κόσμε'); // 'κόσμε-äöü'
参数
string $haystack <p>从该字符串中获取needle的最后一个出现.</p>
string $needle <p>在haystack中要查找的字符串.</p>
- `bool $before_needle [可选]
Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the last occurrence of needle. If set to false, it returns all of haystack from the last occurrence of needle to the end,
设置字符集,例如“mb_”函数。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
false|string <p>haystack的部分或如果没有找到needle则返回false.</p>
strrev(string $str, string $encoding): string
↑ 反转字符串中字符的顺序。
示例: UTF8::strrev('κ-öäü'); // 'üäö-κ'
参数
string $str <p>输入字符串。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>字符串中的字符顺序反转.</p>
strrichr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 在字符串中查找字符的最后出现位置,不区分大小写。
示例: UTF8::strrichr('Aκόσμεκόσμε-äöü', 'aκόσμε'); // 'Aκόσμεκόσμε-äöü'
参数
string $haystack <p>从该字符串中获取needle的最后一个出现.</p>
string $needle <p>在haystack中查找的字符串.</p>
- `bool $before_needle [可选]
Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the last occurrence of needle. If set to false, it returns all of haystack from the last occurrence of needle to the end,
设置字符集,例如“mb_”函数。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
false|string <p>查找的子串在haystack中的部分,或者如果找不到子串则返回false.</p>
strripos(string $haystack, int|string $needle, int $offset, string $encoding, bool $clean_utf8): false|int
↑ 在字符串中查找子串最后出现的位置,不区分大小写。
示例: UTF8::strripos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 13
参数
string $haystack <p>要查找的字符串.</p>
int|string $needle <p>要查找的子串.</p>
int $offset [可选] <p>在开始或结束时忽略的字符数.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
false|int <p>在haystack字符串中子串最后出现的位置的数字位置。如果找不到子串,则返回false.</p>
strripos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子串最后出现的位置,不区分大小写。
参数
- `string $haystack
从该字符串获取子串最后出现的位置。
在haystack中要查找的字符串。
` - `int $offset [可选]在haystack中开始搜索的位置。
`返回值
false|int <p>返回子串在haystack字符串中最后出现的位置的数字位置,如果找不到子串则返回false.</p>
strrpos(string $haystack, int|string $needle, int $offset, string $encoding, bool $clean_utf8): false|int
↑ 在字符串中查找子串最后出现的位置。
示例: UTF8::strrpos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 13
参数
string $haystack <p>被检查的字符串,查找子串的最后出现位置</p>
int|string $needle <p>要查找的字符串,在haystack中查找.<br>或作为int的码点.</p>
- `int $offset [可选]
可以指定从字符串中任意多个字符开始搜索。负值将在字符串末尾之前停止搜索。
设置字符集。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
false|int <p>在haystack字符串中子串最后出现的位置的数字位置。如果找不到子串,则返回false.</p>
strrpos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子串最后出现的位置。
参数
- `string $haystack
被检查的字符串,查找子串的最后出现位置。
在haystack中要查找的字符串。
` - `int $offset [可选]可以指定从字符串中任意多个字符开始搜索。负值将在字符串末尾之前停止搜索。
`返回值
false|int <p>子串在haystack字符串中最后出现的位置的数字位置。如果找不到子串,则返回false.</p>
strspn(string $str, string $mask, int $offset, int|null $length, string $encoding): false|int
↑ 查找由给定掩码中包含的字符组成的字符串的初始段长度。
示例: UTF8::strspn('iñtërnâtiônàlizætiøn', 'itñ'); // '3'
参数
string $str <p>输入字符串。</p>
string $mask <p>字符掩码</p>
int $offset [可选]
int|null $length [可选]
string $encoding [可选] <p>设置字符集。</p>
返回值
false|int
strstr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 返回从第一个出现的位置到haystack字符串末尾的haystack字符串的一部分。
示例: $str = 'iñtërnâtiônàlizætiøn'; $search = 'nât';
UTF8::strstr($str, $search)); // 'nâtiônàlizætiøn' UTF8::strstr($str, $search, true)); // 'iñtër'
参数
string $haystack <p>输入字符串。必须是有效的UTF-8.</p>
string $needle <p>要查找的字符串。必须是有效的UTF-8.</p>
- `bool $before_needle [可选]
如果 TRUE,strstr() 返回从第一个出现的位置到第一个出现的位置之前的haystack字符串的一部分(不包括子串)。
设置字符集,例如“mb_”函数。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
false|string <p>子串,如果子串未找到,则返回false.</p>
strstr_in_byte(string $haystack, string $needle, bool $before_needle): false|string
↑ 在另一个字符串中查找字符串的第一个出现。
参数
- `string $haystack
从字符串中获取第一个出现的位置的针。
在haystack中要查找的字符串。
` - `bool $before_needle [可选]确定该函数返回的稻草堆的部分。如果设置为 true,则返回从开始到第一个出现针的整个稻草堆。如果设置为 false,则返回从第一个出现针到结束的整个稻草堆。
`返回值
false|string <p>稻草堆的部分,如果没有找到针则返回 false.</p>
strtocasefold(string $str, bool $full, bool $clean_utf8, string $encoding, string|null $lang, bool $lower): string
↑ Unicode 转换,用于无大小写匹配。
示例: UTF8::strtocasefold('ǰ◌̱'); // 'ǰ◌̱'
参数
string $str <p>输入字符串。</p>
- `bool $full [可选]
true,替换完整的大小写折叠字符(默认值)
false,仅使用有限的静态数组 [UTF8::$COMMON_CASE_FOLD]
从字符串中移除非UTF-8字符。
` - `string $encoding [optional]设置字符集。
` - `string|null $lang [可选]设置特殊情况的语言:az, el, lt, tr
` - `bool $lower [可选]使用小写字符串,否则使用大写字符串。PS:对于某些语言,大写可能更好...
`返回值
string
strtolower(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 将字符串转换为小写。
示例: UTF8::strtolower('DÉJÀ Σσς Iıİi'); // 'déjà σσς iıii'
参数
string $str <p>正在小写的字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string <p>将所有字母字符转换为小写的字符串.</p>
strtoupper(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 将字符串转换为大写。
示例: UTF8::strtoupper('Déjà Σσς Iıİi'); // 'DÉJÀ ΣΣΣ IIİI'
参数
string $str <p>正在大写的字符串.</p>
string $encoding [可选] <p>设置字符集。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string <p>将所有字母字符转换为大写的字符串.</p>
strtr(string $str, string|string[] $from, string|string[] $to): string
↑ 翻译字符或替换子字符串。
示例: $array = [ 'Hello' => '○●◎', '中文空白' => 'earth', ]; UTF8::strtr('Hello 中文空白', $array); // '○●◎ earth'
参数
string $str <p>正在翻译的字符串.</p>
string|string[] $from <p>替换的字符串.</p>
string|string[] $to [可选] <p>翻译到的字符串.</p>
返回值
string <p>此函数返回 str 的副本,将 "from" 中每个字符的所有出现转换为 "to" 中相应的字符.</p>
strwidth(string $str, string $encoding, bool $clean_utf8): int
↑ 返回字符串的宽度。
INFO:使用 UTF8::strlen() 获取字节数。
示例: UTF8::strwidth("Iñtërnâtiôn\xE9àlizætiøn")); // 21
参数
string $str <p>输入字符串。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
int
substr(string $str, int $offset, int|null $length, string $encoding, bool $clean_utf8): false|string
↑ 获取字符串的一部分。
示例: UTF8::substr('中文空白', 1, 2); // '文空'
参数
string $str <p>正在检查的字符串.</p>
int $offset <p>在 str 中使用的第一个位置.</p>
int|null $length [可选] <p>返回字符串的最大长度.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
false|string <i>str</i> 的指定部分,由 <i>offset</i> 和 <i>length</i> 参数指定。</p><p>如果 <i>str</i> 的长度小于 <i>offset</i> 个字符,则返回 <b>FALSE</b>。
substr_compare(string $str1, string $str2, int $offset, int|null $length, bool $case_insensitivity, string $encoding): int
↑ 从偏移量开始,对两个字符串进行二进制安全的比较,直到指定字符的长度。
示例: UTF8::substr_compare("○●◎\r", '●◎', 0, 2); // -1 UTF8::substr_compare("○●◎\r", '◎●', 1, 2); // 1 UTF8::substr_compare("○●◎\r", '●◎', 1, 2); // 0
参数
string $str1 <p>正在比较的主要字符串.</p>
string $str2 <p>正在比较的次要字符串.</p>
int $offset [可选] <p>比较的起始位置。如果为负数,则从字符串的末尾开始计数.</p>
int|null $length [可选] <p>比较的长度。默认值是主字符串与比较字符串长度的较大值减去偏移量.</p>
bool $case_insensitivity [可选] <p>如果 case_insensitivity 为 TRUE,则比较不区分大小写.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int <strong>< 0</strong> 如果str1小于str2;<br> <strong>> 0</strong> 如果str1大于str2;<br> <strong>0</strong> 如果它们相等
substr_count(string $haystack, string $needle, int $offset, int|null $length, string $encoding, bool $clean_utf8): false|int
↑ 计算子字符串出现的次数。
示例: UTF8::substr_count('中文空白', '文空', 1, 2); // 1
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
int $offset [可选] <p>开始计数的偏移量.</p>
- `int|null $length [可选]
指定偏移量之后搜索子字符串的最大长度。如果偏移量加长度大于源字符串长度,则输出警告。
设置字符集,例如“mb_”函数。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回值
false|int <p>此函数返回整数或 false(如果没有字符串).</p>
substr_count_in_byte(string $haystack, string $needle, int $offset, int|null $length): false|int
↑ 计算子字符串出现的次数。
参数
- `string $haystack
要检查的字符串。
要查找的字符串。
` - `int $offset [可选]开始计数的偏移量
` - `int|null $length [可选]指定偏移量之后搜索子字符串的最大长度。如果偏移量加长度大于源字符串长度,则输出警告。
`返回值
false|int <p>在源字符串中 needle 子字符串出现的次数.</p>
substr_count_simple(string $str, string $substring, bool $case_sensitive, string $encoding): int
↑ 返回给定字符串中 $substring 出现的次数。
默认情况下,比较区分大小写,但可以将 $case_sensitive 设置为 false 以进行不区分大小写的比较。
参数
string $str <p>输入字符串。</p>
string $substring <p>要搜索的子字符串.</p>
bool $case_sensitive [可选] <p>是否强制大小写敏感。默认:true</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
int
substr_ileft(string $haystack, string $needle): string
↑ 从字符串 ($haystack) 的开头移除前缀 ($needle),不区分大小写。
示例: UTF8::substr_ileft('ΚόσμεMiddleEnd', 'Κόσμε'); // 'MiddleEnd' UTF8::substr_ileft('ΚόσμεMiddleEnd', 'κόσμε'); // 'MiddleEnd'
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
string <p>返回子字符串.</p>
substr_in_byte(string $str, int $offset, int|null $length): false|string
↑ 获取字符串的字节部分。
参数
string $str <p>正在检查的字符串.</p>
int $offset <p>在 str 中使用的第一个位置.</p>
int|null $length [可选] <p>返回字符串的最大长度.</p>
返回值
false|string <p>由 <i>offset</i> 和 <i>length</i> 参数指定的 <i>str</i> 的部分。</p><p>如果 <i>str</i> 的长度小于 <i>offset</i> 个字符,则返回 <b>FALSE</b>。</p>
substr_iright(string $haystack, string $needle): string
↑ 从字符串 ($haystack) 的末尾移除后缀 ($needle),不区分大小写。
示例: UTF8::substr_iright('BeginMiddleΚόσμε', 'Κόσμε'); // 'BeginMiddle' UTF8::substr_iright('BeginMiddleΚόσμε', 'κόσμε'); // 'BeginMiddle'
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
string <p>返回子字符串.<p>
substr_left(string $haystack, string $needle): string
↑ 从字符串 ($haystack) 的开头移除前缀 ($needle)。
示例: UTF8::substr_left('ΚόσμεMiddleEnd', 'Κόσμε'); // 'MiddleEnd' UTF8::substr_left('ΚόσμεMiddleEnd', 'κόσμε'); // 'ΚόσμεMiddleEnd'
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
返回值
string <p>返回子字符串.</p>
substr_replace(string|string[] $str, string|string[] $replacement, int|int[] $offset, int|int[]|null $length, string $encoding): string|string[]
↑ 在字符串的一部分中替换文本。
示例:UTF8::substr_replace(array('Iñtërnâtiônàlizætiøn', 'foo'), 'æ', 1); // array('Iæñtërnâtiônàlizætiøn', 'fæoo')
来源:https://gist.github.com/stemar/8287074
参数
TSubReplace $str <p>输入字符串或字符串数组.</p>
string|string[] $replacement <p>替换字符串或字符串数组.</p>
- `int|int[] $offset
如果起始位置为正数,替换将从字符串中的起始位置的偏移量开始。
如果起始位置为负数,替换将从字符串末尾的起始位置字符开始。
如果指定且为正数,表示要替换的字符串部分的长度。如果为负数,表示从字符串末尾开始替换的字符数。如果未指定,则默认为 strlen( string );即替换到字符串末尾。当然,如果长度为零,则此函数将在给定的起始偏移量中将替换插入字符串中。
` - `string $encoding [optional]设置字符集,例如“mb_”函数。
`返回值
string|string[] <p>返回结果字符串。如果字符串是数组,则返回数组.</p>
substr_right(string $haystack, string $needle, string $encoding): string
↑ 从字符串($haystack)的末尾删除后缀($needle)。
示例: UTF8::substr_right('BeginMiddleΚόσμε', 'Κόσμε'); // 'BeginMiddle' UTF8::substr_right('BeginMiddleΚόσμε', 'κόσμε'); // 'BeginMiddleΚόσμε'
参数
string $haystack <p>搜索的字符串.</p>
string $needle <p>要搜索的子字符串.</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
返回值
string <p>返回子字符串.</p>
swapCase(string $str, string $encoding, bool $clean_utf8): string
↑ 返回字符串的字母大小写翻转版本。
示例:UTF8::swapCase('déJÀ σσς iıII'); // 'DÉjà ΣΣΣ IIii'
参数
string $str <p>输入字符串。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
string <p>每个字符的大小写都翻转了.</p>
symfony_polyfill_used(): bool
↑ 检查是否使用了symfony-polyfills。
参数: 无
返回值
bool <p><strong>true</strong> 如果正在使用,否则 <strong>false</strong></p>
tabs_to_spaces(string $str, int $tab_length): string
参数
string $str
int $tab_length
返回值
string
titlecase(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 将字符串中每个单词的第一个字符转换为大写,其他字符转换为小写。
参数
string $str <p>输入字符串。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string <p>将所有字符都转换为标题格式的字符串.</p>
to_ascii(string $str, string $unknown, bool $strict): string
↑ 将字符串转换为ASCII。
示例:UTF8::to_ascii('déjà σσς iıii'); // 'deja sss iiii'
参数
string $str <p>输入字符串。</p>
string $unknown [可选] <p>如果字符未知,则使用该字符。默认为 ?</p>
bool $strict [可选] <p>使用PHP-Intl的"transliterator_transliterate()" | 警告:性能较差</p>
返回值
string
to_boolean(bool|float|int|string $str): bool
参数
bool|float|int|string $str
返回值
bool
to_filename(string $str, bool $use_transliterate, string $fallback_char): string
↑ 将给定的字符串转换为安全的文件名(并保持字符串的大小写)。
参数
string $str
bool $use_transliterate 默认不进行转写、转换等操作 - 不安全的字符将被替换为破折号。
string $fallback_char
返回值
string
to_int(string $str): int|null
↑ 将给定的字符串作为整数返回,如果字符串不是数字,则返回null。
参数
string $str
返回值
int|null <p>如果字符串不是数字,则为null</p>
to_iso8859(string|string[] $str): string|string[]
↑ 将字符串转换为"ISO-8859"-编码(拉丁-1)。
示例:UTF8::to_utf8(UTF8::to_iso8859(' -ABC-中文空白- ')); // ' -ABC-????- '
参数
TToIso8859 $str
返回值
string|string[]
to_string(float|int|object|string|null $input): string|null
↑ 返回给定的输入作为字符串,如果输入不是int|float|string且未实现"__toString()"方法,则返回null。
参数
float|int|object|string|null $input
返回值
string|null <p>如果输入不是int|float|string且没有"__toString()"方法,则为null</p>
to_utf8(string|string[] $str, bool $decode_html_entity_to_utf8): string|string[]
↑ 此函数不改变UTF-8字符,同时将几乎所有非UTF-8转换为UTF8。
- 它解码UTF-8代码点和Unicode转义序列。
- 它假设原始字符串的编码为WINDOWS-1252或ISO-8859。
- 警告:它不会删除无效的UTF-8字符,所以你可能需要使用"UTF8::clean()"来处理这种情况。
示例: UTF8::to_utf8(["\u0063\u0061\u0074"]); // array('cat')
参数
TToUtf8 $str <p>任何字符串或字符串数组.</p>
bool $decode_html_entity_to_utf8 <p>设置为true,如果需要解码HTML实体.</p>
返回值
string|string[] <p>UTF-8编码的字符串</p>
to_utf8_string(string $str, bool $decode_html_entity_to_utf8): string
↑ 此函数不改变UTF-8字符,同时将几乎所有非UTF-8转换为UTF8。
- 它解码UTF-8代码点和Unicode转义序列。
- 它假设原始字符串的编码为WINDOWS-1252或ISO-8859。
- 警告:它不会删除无效的UTF-8字符,所以你可能需要使用"UTF8::clean()"来处理这种情况。
示例: UTF8::to_utf8_string("\u0063\u0061\u0074"); // 'cat'
参数
T $str <p>任何字符串.</p>
bool $decode_html_entity_to_utf8 <p>设置为true,如果需要解码HTML实体.</p>
返回值
string <p>UTF-8编码的字符串</p>
trim(string $str, string|null $chars): string
↑ 从UTF-8字符串的开始和结束处删除空白或其他字符。
信息:这比"trim()"慢。
如果我们使用的是字符串/chars中的7位,则只能使用原始函数,因为我们在这里可以节省时间。
示例: UTF8::trim(' -ABC-中文空白- '); // '-ABC-中文空白-'
参数
string $str <p>要修剪的字符串。</p>
string|null $chars [optional] <p>要删除的字符(可选)</p>
返回值
string <p>删除后的字符串.</p>
ucfirst(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 将字符串的第一个字符转换为大写。
示例: UTF8::ucfirst('ñtërnâtiônàlizætiøn foo'); // 'Ñtërnâtiônàlizætiøn foo'
参数
string $str <p>输入字符串。</p>
string $encoding [可选] <p>设置字符集,例如 "mb_" 函数。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
string|null $lang [可选] <p>对于特殊情况的设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回值
string <p>结果字符串,其中字符已大写。</p>
ucwords(string $str, string[] $exceptions, string $char_list, string $encoding, bool $clean_utf8): string
↑ 将字符串中的所有单词转换为大写。
示例: UTF8::ucwords('iñt ërn âTi ônà liz æti øn'); // 'Iñt Ërn ÂTi Ônà Liz Æti Øn'
参数
string $str <p>输入字符串。</p>
string[] $exceptions [可选] <p>排除某些单词。</p>
string $char_list [可选] <p>包含在单词中且不以新单词开始的额外字符。</p>
string $encoding [可选] <p>设置字符集。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符.</p>
返回值
string
urldecode(string $str, bool $multi_decode): string
↑ 多次解码HTML实体 + 修复urlencoded-win1252-chars。
示例: UTF8::urldecode('tes%20öäü%20\u00edtest+test'); // 'tes öäü ítest test'
例如:'test+test' => 'test test' 'Düsseldorf' => 'Düsseldorf' 'D%FCsseldorf' => 'Düsseldorf' 'Düsseldorf' => 'Düsseldorf' 'D%26%23xFC%3Bsseldorf' => 'Düsseldorf' 'Düsseldorf' => 'Düsseldorf' 'D%C3%BCsseldorf' => 'Düsseldorf' 'D%C3%83%C2%BCsseldorf' => 'Düsseldorf' 'D%25C3%2583%25C2%25BCsseldorf' => 'Düsseldorf'
参数
T $str <p>输入字符串.</p>
bool $multi_decode <p>尽可能多地解码。</p>
返回值
string
utf8_decode(string $str, bool $keep_utf8_chars): string
↑ 将UTF-8字符串解码为ISO-8859-1。
示例: UTF8::encode('UTF-8', UTF8::utf8_decode('-ABC-中文空白-')); // '-ABC-????-'
参数
string $str <p>输入字符串。</p>
bool $keep_utf8_chars
返回值
string
utf8_encode(string $str): string
↑ 将ISO-8859-1字符串编码为UTF-8。
示例: UTF8::utf8_decode(UTF8::utf8_encode('-ABC-中文空白-')); // '-ABC-中文空白-'
参数
string $str <p>输入字符串。</p>
返回值
string
whitespace_table(): string[]
↑ 返回一个包含所有utf8空白字符的数组。
参数: 无
返回值
string[] 包含所有已知空白字符的值,以及空白字符的类型,键定义为上述URL。
words_limit(string $str, int $limit, string $str_add_on): string
↑ 限制字符串中的单词数量。
示例:UTF8::words_limit('fòô bàř fòô', 2, ''); // 'fòô bàř'
参数
string $str <p>输入字符串。</p>
int<1, max> $limit <p>单词数量的整数限制.</p>
string $str_add_on <p>替换被移除的字符串.</p>
返回值
string
wordwrap(string $str, int $width, string $break, bool $cut): string
↑ 将字符串包裹为指定字符数
示例:UTF8::wordwrap('Iñtërnâtiônàlizætiøn', 2, '
', true)); // 'Iñ
të
rn
ât
iô
nà
li
zæ
ti
øn'
参数
string $str <p>输入字符串。</p>
int<1, max> $width [optional] <p>列宽.</p>
string $break [optional] <p>使用可选的断行参数来断行行.</p>
- `bool $cut [optional]
如果将剪切设置为true,则字符串总是包裹在或之前指定的宽度。因此,如果您有一个比给定宽度更大的单词,它将被分开。
返回值
string <p>在指定列宽包裹的给定字符串.</p>
wordwrap_per_line(string $str, int $width, string $break, bool $cut, bool $add_final_break, string|null $delimiter): string
↑ 在$limit之后对字符串进行行包裹,但在包裹之前通过"$delimiter"分割字符串,以便我们按行包裹。
参数
string $str <p>输入字符串。</p>
int<1, max> $width [optional] <p>列宽.</p>
string $break [optional] <p>使用可选的断行参数来断行行.</p>
- `bool $cut [optional]
如果将剪切设置为true,则字符串总是包裹在或之前指定的宽度。因此,如果您有一个比给定宽度更大的单词,它将被分开。
如果此标志为true,则方法将在结果字符串末尾添加一个$break。
` - `non-empty-string|null $delimiter [optional]您可以更改默认行为,即我们通过换行符分割字符串。
`返回值
string
ws(): string[]
↑ 返回一个包含Unicode空白字符的数组。
参数: 无
返回值
string[] <p>包含数字码点作为键和空白字符作为值的数组.</p>
单元测试
- Composer 是运行测试的先决条件。
composer install
- 可以从根目录运行此命令来执行测试
./vendor/bin/phpunit
支持
有关支持和支持,请访问 GitHub | 问题 | PayPal | Patreon。
有关状态更新和发布公告,请访问 发布 | Twitter | Patreon。
有关专业支持,请联系 我。
谢谢
- 感谢 GitHub (Microsoft) 提供代码和良好的基础设施,包括问题管理等。
- 感谢 IntelliJ,因为它们制作了最好的PHP IDE,并为我提供了PhpStorm的开源许可证!
- 感谢 Travis CI,因为它是最好的、最简单的持续集成工具!
- 感谢 StyleCI 提供简单但强大的代码风格检查。
- 感谢 PHPStan && Psalm 提供真正出色的静态分析工具,并发现代码中的错误!
许可和版权
"Portable UTF8" 是免费软件;您可以在 (根据您的选择) 条件下重新分发它或修改它。
Unicode处理需要在长期运行中投入繁琐的工作来实现和维护。因此,如单元测试、错误报告、评论或两种许可证下的补丁等贡献都非常受欢迎。