tingv / 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: ~1.5.6
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
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
- 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
This package is auto-updated.
Last update: 2024-09-18 09:00:30 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"-片段的精选...
演示
在这里,您可以测试此库的一些基本函数,并且可以将一些结果与原生的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”和其他的问题在于,您通常无法确保服务器上存在特定的一个。如果您依赖其中一个,那么您的应用程序就不再具有可移植性。对于必须在不同服务器上以不同配置运行的开源应用程序来说,这个问题更加严重。考虑到这些因素,我决定编写一个库
要求和推荐
- 运行此库不需要任何扩展。便携式UTF-8仅需要PCRE库,该库自PHP 4.2.0以来默认可用,并且自PHP 5.3.0以来无法禁用。PCRE中的"\u"修饰符支持UTF-8处理不是必需的。
- PHP 5.3是最低要求,所有后续版本都可以与便携式UTF-8兼容。
- 自Portable UTF-8 4.0版本以来,PHP 7.0是最低要求,否则composer将安装旧版本
- PHP 8.0支持也可用,并将适应原生函数的行为。
- 为了加快字符串处理,建议您在服务器上安装“mbstring”或“iconv”,以及PCRE库的最新版本。
- 尽管便携式UTF-8使用方便;从本地API迁移到便携式UTF-8可能对每个人来说都不那么直接。强烈建议在了解原因和后果之前,不要更新脚本以包含便携式UTF-8或替换或更改任何内容。大多数情况下,一些本地函数可能就是您所需要的。
- 此外,还提供了“mbstring”、“iconv”和“intl”的适配器,因此您也可以在共享网站空间中使用它。
信息
从版本5.4.26开始,此库不再通过“bootstrap.php”强制使用“UTF-8”。如果您需要启用此行为,可以在包含自动加载器之前定义“PORTABLE_UTF8__ENABLE_AUTO_FILTER”。
define('PORTABLE_UTF8__ENABLE_AUTO_FILTER', 1);
在版本5.4.26之前,此行为默认启用,您可以通过“PORTABLE_UTF8__DISABLE_AUTO_FILTER”来禁用它,但代码在通过header('Location ...
重定向时可能存在潜在的通过注入代码的安全漏洞。这就是我决定在错误修复版本中添加此BC的原因,以便使用当前版本的每个人都能接收到安全修复。
用法
示例 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 // ä
便携式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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string <p>单个多字节字符.</p>
add_bom_to_string(string $str): string
↑ 将UTF-8 BOM字符添加到字符串中,并返回整个字符串。
信息:如果BOM已经存在,则返回输入字符串。
示例: UTF8::add_bom_to_string('fòô'); // "\xEF\xBB\xBF" . 'fòô'
参数
string $str <p>输入字符串.</p>
返回
string <p>包含BOM的输出字符串.</p>
array_change_key_case(array $array, int $case, string $encoding): string[]
↑ 更改数组中的所有键。
参数
array<string, mixed> $array <p>要处理的数组</p>
int $case [optional] <p>要么是 <strong>CASE_UPPER</strong><br> 要么是 <strong>CASE_LOWER</strong> (默认)</p>
string $encoding [optional] <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 [optional] <p>开始搜索的索引。默认:0</p>
string $encoding [optional] <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(): string
↑ 返回UTF-8字节顺序标记字符。
信息:查看UTF8::$bom,例如UTF-16和UTF-32 BOM值
示例: UTF8::bom(); // "\xEF\xBB\xBF"
参数: 无
返回
string <p>UTF-8 字节顺序标记.</p>
callback(callable $callback, string $str): string[]
参数
callable $callback
string $str
返回
string[]
char_at(string $str, int $index, string $encoding): string
↑ 返回指定索引处的字符,索引从0开始。
参数
string $str <p>输入字符串.</p>
int $index <p>字符的位置.</p>
string $encoding [optional] <p>默认是UTF-8</p>
返回
string <p>指定索引处的字符.</p>
chars(string $str): string[]
↑ 返回字符串中所有字符的数组。
参数
string $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()相反
示例: UTF8::chr(0x2603); // '☃'
参数
int $code_point <p>生成字符的码点.</p>
string $encoding [optional] <p>默认是UTF-8</p>
返回
string|null <p>多字节字符,失败或空输入时返回null.</p>
chr_map(callable $callback, string $str): string[]
↑ 将回调函数应用于字符串中的所有字符。
示例: UTF8::chr_map([UTF8::class, 'strtolower'], 'Κόσμε'); // ['κ','ό', 'σ', 'μ', 'ε']
参数
callable $callback <p>回调函数.</p>
string $str <p>要运行回调的UTF-8字符串.</p>
返回
string[] <p>回调的结果,作为数组.</p>
chr_size_list(string $str): int[]
↑ 生成一个数组,包含Unicode字符串中每个字符的字节长度。
1 byte => U+0000 - U+007F 2 byte => U+0080 - U+07FF 3 byte => U+0800 - U+FFFF 4 byte => U+10000 - U+10FFFF
示例: UTF8::chr_size_list('中文空白-test'); // [3, 3, 3, 3, 1, 1, 1, 1, 1]
参数
string $str <p>原始的Unicode字符串.</p>
返回
int[] <p>每个字符的字节长度数组.</p>
chr_to_decimal(string $char): int
↑ 获取特定字符的十进制代码表示。
INFO: 与UTF8::decimal_to_chr()相反
示例: UTF8::chr_to_decimal('§'); // 0xa7
参数
string $char <p>输入字符.</p>
返回
int
chr_to_hex(int|string $char, string $prefix): string
↑ 获取UTF-8编码字符的十六进制码点(U+xxxx)。
示例: UTF8::chr_to_hex('§'); // U+00a7
参数
int|string $char <p>输入字符</p>
string $prefix [optional]
返回
string <p>编码为U+xxxx的码点.</p>
chunk_split(string $body, int $chunk_length, string $end): string
↑ 使用指定的行结束字符将字符串分割成更小的块和多个行。
示例: UTF8::chunk_split('ABC-ÖÄÜ-中文空白-κόσμε', 3); // "ABC\r\n-ÖÄ\r\nÜ-中\r\n文空白\r\n-κό\r\nσμε"
参数
string $body <p>要分割的原始字符串.</p>
int $chunk_length [optional] <p>每个块的最大字符长度.</p>
string $end [optional] <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')
参数
string|string[] $arg <p>UTF-8编码的字符串或字符串数组。</p>
bool $use_u_style <p>如果为真,将返回U+xxxx格式的码点,默认码点将以整数形式返回。</p>
返回
- `int[]|string[]
码点数组
对于$u_style === false的int[]
对于$u_style === true的string[]
collapse_whitespace(string $str): string
↑ 去除字符串的前后空白,并替换连续的空白字符为一个空格。这包括制表符、换行符,以及多字节空白符,如细空格和汉字空格。
参数
string $str <p>输入字符串.</p>
返回
string <p>经过修剪和压缩空白的字符串。</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)
参数
string $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
↑ 创建一个有效的CSS标识符,例如用于"类"或"id"属性。
示例: 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
参数
字符串 $str <p>INFO: 如果没有提供标识符,例如 " " 或 "",我们将自动创建一个唯一的字符串</p>
数组
$filter 布尔 $strip_tags
布尔 $strtolower
返回
string
css_stripe_media_queries(string $str): string
↑ 移除 css 媒体查询。
参数
string $str
返回
string
ctype_loaded(): 布尔
↑ 检查服务器上是否可用 ctype。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
decimal_to_chr(int|string $int): string
↑ 将 int 值转换为 UTF-8 字符。
INFO:与UTF8::string()相反
示例: UTF8::decimal_to_chr(931); // 'Σ'
参数
int|数字字符串 $int
返回
string
decode_mimeheader(string $str, string $encoding): false|string
↑ 解码 MIME 头字段
参数
string $str
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
false|string <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>
布尔 $use_reversible_string_mappings [可选] <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-'
参数
字符串 $str <p>输入字符串</p>
布尔 $use_reversible_string_mappings [可选] <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。
参数
字符串 $country_code_iso_3166_1 <p>例如:DE</p>
返回
字符串 <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'
参数
字符串 $to_encoding <p>例如:'UTF-16', 'UTF-8', 'ISO-8859-1' 等。</p>
字符串 $str <p>输入字符串</p>
布尔 $auto_detect_the_from_encoding [可选] <p>强制新的编码(我们尝试修复 UTF-8 的损坏/双重编码)<br> 否则,我们自动检测当前的字符串编码</p>
字符串 $from_encoding [可选] <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
字符串 $from_charset [可选] <p>设置输入字符集。</p>
字符串 $to_charset [可选] <p>设置输出字符集。</p>
字符串 $transfer_encoding [可选] <p>设置传输编码。</p>
string $linefeed [可选] <p>设置使用的换行符。</p>
int $indent [可选] <p>设置最大缩进长度。</p>
返回
false|string <p>成功编码的MIME字段,或者在编码过程中发生错误时为false。</p>
extract_text(string $str, string $search, int|null $length, string $replacer_for_skipped_text, string $encoding): string
↑ 从句子中创建一个摘录,如果找到了搜索字符串,则尝试在输出中居中显示。
参数
string $str <p>输入字符串.</p>
string $search <p>要搜索的字符串。</p>
int|null $length [可选] <p>默认:null === text->length / 2</p>
string $replacer_for_skipped_text [可选] <p>默认:…</p>
string $encoding [optional] <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
↑ 读取整个文件到一个字符串中。
EXAMPLE: UTF8::file_get_contents('utf16le.txt'); // ...
WARNING: 不要对二进制文件(例如:图像)使用UTF-8选项($convert_to_utf8)!!!
参数
- `string $filename
要读取的文件名。
在PHP 5之前,此参数称为use_include_path,是一个布尔值。从PHP 5开始,可以使用FILE_USE_INCLUDE_PATH来触发包含路径搜索。
` - `resource|null $context [可选]使用stream_context_create创建的有效上下文资源。如果您不需要使用自定义上下文,可以通过&null;跳过此参数。
` - `int|null $offset [可选]开始读取的偏移量。
` - `int|null $max_length [可选]读取数据的最大长度。默认是读取到文件末尾。
` - `int $timeout超时时间(秒)。
` - `bool $convert_to_utf8 WARNING!!!可能您不能为某些文件使用此选项,因为这些文件使用了非默认的UTF-8字符。像图像或PDF这样的二进制文件将不会转换。
` - `string $from_encoding [可选]例如,'UTF-16','UTF-8','ISO-8859-1'等。
空字符串将自动检测。
返回
false|string <p>函数返回读取的数据作为字符串,或者在失败时返回<b>false</b>。</p>
file_has_bom(string $file_path): bool
↑ 检查文件是否以BOM(字节顺序标记)字符开头。
EXAMPLE: UTF8::file_has_bom('utf8_with_bom.txt'); // true
参数
string $file_path <p>有效文件的路径。</p>
返回
bool <p><strong>true</strong> 如果文件在开头有BOM,否则为 <strong>false</strong>。</p>
filter(array|object|string $var, int $normalization_form, string $leading_combining): mixed
↑ 正规化为UTF-8 NFC,在需要时从WINDOWS-1252转换。
EXAMPLE: 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转换。
通过名称获取特定外部变量,并可选地对其进行过滤。
EXAMPLE: // _GET['foo'] = 'bar'; UTF8::filter_input(INPUT_GET, 'foo', FILTER_SANITIZE_STRING)); // 'bar'
参数
- `int $type
可以是 INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER 或 INPUT_ENV 之一。
要获取的变量名称。
` - `int $filter [可选]要应用的过滤器的ID。手册页列出了可用的过滤器。
` - `int|int[]|null $options [可选]选项关联数组或标志位的位或。如果过滤器接受选项,标志可以提供在数组中的“flags”字段。
`返回
- `混合
成功时请求变量的值,如果过滤器失败则返回FALSE,如果variable_name变量未设置则返回NULL。如果使用标志FILTER_NULL_ON_FAILURE,变量未设置时返回FALSE,过滤器失败时返回NULL。
filter_input_array(int $type, array|null $definition, bool $add_empty): mixed
↑ “filter_input_array()”包装函数,正常化为UTF-8 NFC,在需要时从WINDOWS-1252转换。
获取外部变量并可选地进行过滤。
示例: // _GET['foo'] = 'bar'; UTF8::filter_input_array(INPUT_GET, array('foo' => 'FILTER_SANITIZE_STRING')); // array('bar')
参数
- `int $type
可以是 INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER 或 INPUT_ENV 之一。
定义参数的数组。有效的键是一个包含变量名的字符串,有效的值可以是过滤器类型,或者是一个可选地指定过滤器、标志和选项的数组。如果值是数组,有效的键是filter,指定过滤器类型;flags,指定适用于过滤器的任何标志;options,指定适用于过滤器的任何选项。请参见下面的示例以更好地理解。
此参数也可以是一个整数,表示过滤器常量。然后所有输入数组的值都将通过此过滤器进行过滤。
` - `bool $add_empty [可选]将缺失的键添加为返回值中的NULL。
`返回
- `混合
包含请求变量值的数组,在成功时,或在失败时返回FALSE。如果过滤器失败,数组值将为FALSE,如果变量未设置,则为NULL。或者如果使用标志FILTER_NULL_ON_FAILURE,变量未设置时返回FALSE,过滤器失败时返回NULL。
filter_var(float|int|string|null $variable, int $filter, int|int[]|null $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[]|null $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)); // 回调验证过滤器函数 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|null $definition, bool $add_empty): mixed
↑ “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' => 'foo@bar.de' ];
UTF8::filter_var_array($data, $filters, true); // ['name' => 'Κόσμε', 'age' => 18, 'email' => 'foo@bar.de']
参数
- `array $data
包含要过滤的数据的字符串键数组。
定义参数的数组。有效的键是一个包含变量名的字符串,有效的值可以是过滤器类型,或者是一个可选地指定过滤器、标志和选项的数组。如果值是数组,有效的键是filter,指定过滤器类型;flags,指定适用于过滤器的任何标志;options,指定适用于过滤器的任何选项。请参见下面的示例以更好地理解。
此参数也可以是一个整数,表示过滤器常量。然后所有输入数组的值都将通过此过滤器进行过滤。
` - `bool $add_empty [可选]将缺失的键添加为返回值中的NULL。
`返回
- `混合
成功时包含请求变量的值数组,或失败时返回 FALSE。如果过滤失败,则数组值将为 FALSE,如果变量未设置,则返回 NULL。
finfo_loaded(): bool
↑ 检查服务器上是否可用的 finfo。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
first_char(string $str, int $n, string $encoding): string
↑ 返回字符串的前 $n 个字符。
参数
string $str <p>输入字符串.</p>
int $n <p>从开头获取字符的数量.</p>
string $encoding [optional] <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
参数
字符串 $str <p>输入字符串</p>
返回
string
fix_utf8(string|string[] $str): string|string[]
↑ 修复双(或多个)编码的 UTF8 字符串。
示例: UTF8::fix_utf8('Fédération'); // 'Fédération'
参数
string|string[] $str 您可以使用字符串或字符串数组
返回
string|string[] 将返回修复后的输入-"数组"或修复后的输入-"字符串"
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
get_file_type(string $str, array $fallback): null[]|string[]
↑ 注意:此方法仅适用于某些文件类型(png、jpg);如果需要更多支持类型,请使用例如 "finfo"。
参数
string $str
array{ext: (null|string), mime: (null|string), type: (null|string)} $fallback <p>具有以下键:'ext', 'mime', 'type'</p>
返回
null[]|string[] <p>具有以下键:'ext', 'mime', 'type'</p>
get_random_string(int $length, string $possible_chars, string $encoding): string
参数
int $length <p>随机字符串的长度。</p>
string $possible_chars [optional] <p>随机选择使用的字符字符串。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string
get_unique_string(int|string $extra_entropy, bool $use_md5): string
参数
int|string $extra_entropy [optional] <p>通过字符串或整数值提供额外熵。</p>
bool $use_md5 [optional] <p>返回唯一标识符作为md5哈希?默认:true。</p>
返回
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): false|string
↑ 将十六进制值转换为UTF-8字符。
INFO: 与UTF8::chr_to_hex()相反
EXAMPLE: UTF8::hex_to_chr('U+00a7'); // '§'
参数
string $hexdec <p>十六进制值。</p>
返回
false|string 一个单个的UTF-8字符
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('中文空白'); // '中文空白'
参数
string $str <p>要编码为编号实体的Unicode字符串。</p>
bool $keep_ascii_chars [optional] <p>保留ASCII字符。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string HTML编号实体
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('中文空白'); // '中文空白'
参数
- `string $str
输入字符串。
以下标志之一或多个的位掩码,指定如何处理引号和要使用的文档类型。默认为ENT_COMPAT | ENT_HTML401。
可用 flags 常量` - `string $encoding [optional]为例如"mb_"函数设置字符集
`返回
string 解码后的字符串
html_escape(string $str, string $encoding): string
↑ 通过"UTF8::htmlspecialchars()"创建字符串的转义HTML版本。
参数
string $str
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string
html_stripe_empty_tags(string $str): string
↑ 删除空HTML标签。
e.g.
参数
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('<白-öäü>'); // '<白-öäü>'
参数
- `string $str
正在转换的字符串。
以下标志之一或多个的位掩码,指定如何处理引号、无效代码单元序列以及使用的文档类型。默认为 ENT_COMPAT | ENT_HTML401。
可用 flags 常量` - `string $encoding [optional]定义转换中使用的编码。
对于此函数,ISO-8859-1、ISO-8859-15、UTF-8、cp866、cp1251、cp1252 和 KOI8-R 编码在以下条件下被认为是等效的:即如果字符串本身适用于该编码,因为受 htmlspecialchars 影响的字符在这些所有编码中占据相同的位置。
- `bool $double_encode [可选]当 double_encode 关闭时,PHP 不会对现有 HTML 实体进行编码,默认是将所有内容转换为编码。
`返回
- `string the converted string.`
如果输入的 string 在给定的 encoding 中包含无效的代码单元序列,则返回空字符串,除非设置了 ENT_IGNORE 或 ENT_SUBSTITUTE 标志。
iconv_loaded(): bool
↑ 检查服务器上是否可用 iconv。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
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 [optional]
返回
string 代码点,或在失败时为空字符串
intlChar_loaded(): bool
↑ 检查服务器上是否可用 intl-char。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
intl_loaded(): bool
↑ 检查服务器上是否可用 intl。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
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
true 如果它是 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 [optional] <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)。
警告:如果要在字符串中检查BOM,请使用“UTF8::string_has_bom()”。
示例: UTF8::is_bom("\xef\xbb\xbf"); // true
参数
string $str <p>输入字符串.</p>
返回
bool <p><strong>如果是字节顺序标记,则为true,否则为false.</strong>
is_empty(array|float|int|string $str): bool
↑ 确定字符串是否被认为是空的。
如果变量不存在或其值等于FALSE,则被认为是空的。如果变量不存在,empty()不会生成警告。
参数
array|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 [optional] <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
↑ 如果字符串只包含可打印(非不可见)字符,则返回true,否则返回false。
参数
string $str <p>输入字符串.</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 字节序列。
示例: 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。
示例: 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。
示例: 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 字符串
示例: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>在适当的 PHP 类型中编码的 <i>json</i> 的值。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 表示形式。
示例:UTF8::json_enocde(array(1, '¥', 'ä')); // '[1,"\u00a5","\u00e4"]'
参数
- `mixed $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 成功时返回 JSON 编码的 <strong>字符串</strong>,失败时返回 <strong>FALSE</strong>
json_loaded(): bool
↑ 检查服务器上是否有 JSON。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
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
参数
字符串 $str <p>输入字符串</p>
string $encoding [optional] <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>
返回
生成的字符串
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
ltrim(string $str, string|null $chars): string
↑ 从UTF-8字符串的开头删除空白或其他字符。
示例: UTF8::ltrim(' 中文空白 '); // '中文空白 '
参数
string $str <p>要修剪的字符串</p>
string|null $chars <p>可选的要从左侧删除的字符</p>
返回
从左侧删除了不需要的字符的字符串
max(string[]|string $arg): string|null
↑ 返回给定数据中具有最大码点的UTF-8字符。
示例: UTF8::max('abc-äöü-中文空白'); // 'ø'
参数
string[]|string $arg <p>UTF-8编码的字符串或此类字符串的数组</p>
返回
string|null <p>具有最高码点的字符,失败或空输入时返回null</p>
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。
参数: 无
返回
布尔 <p><strong>如果可用则为 true,否则为 false</strong></p>
min(string|string[] $arg): string|null
↑ 返回给定数据中具有最小码点的UTF-8字符。
示例: UTF8::min('abc-äöü-中文空白'); // '-'
参数
string|string[] $arg <strong>UTF-8编码的字符串或此类字符串的数组</strong>
返回
string|null <p>具有最低码点的字符,失败或空输入时返回null.</p>
normalize_encoding(mixed $encoding, mixed $fallback): mixed|string
↑ 规范化编码-"名称"输入。
示例: UTF8::normalize_encoding('UTF8'); // 'UTF-8'
参数
mixed $encoding <p>例如:ISO, UTF8, WINDOWS-1251 等.</p>
string|TNormalizeEncodingFallback $fallback <p>例如:UTF-8</p>
返回
mixed|string <p>例如:ISO-8859-1, UTF-8, WINDOWS-1251 等.<br>默认情况下,将返回空字符串作为后备选项</p>
normalize_line_ending(string $str, string|string[] $replacer): string
↑ 标准化换行符为Unix-like。
参数
string $str <p>输入字符串.</p>
string|string[] $replacer <p>替换字符,例如 "\n" (Linux) 或 "\r\n" (Windows)。您也可以在这里使用 \PHP_EOL。</p>
返回
string <p>具有标准化换行符的字符串。</p>
normalize_msword(string $str): string
↑ 标准化一些MS Word特殊字符。
示例: UTF8::normalize_msword('„Abcdef…”'); // '"Abcdef..."'
参数
字符串 $str <p>需要归一化的字符串。</p>
返回
字符串 <p>包含常用字符的Word文档中归一化字符的字符串。</p>
normalize_whitespace(string $str, bool $keep_non_breaking_space, bool $keep_bidi_unicode_controls): string
↑ 归一化空白。
示例: UTF8::normalize_whitespace("abc-\xc2\xa0-öäü-\xe2\x80\xaf-\xE2\x80\xAC", true); // "abc-\xc2\xa0-öäü- -"
参数
字符串 $str <p>需要归一化的字符串。</p>
bool $keep_non_breaking_space [可选] <p>设置为true,以保留非换行空格。</p>
bool $keep_bidi_unicode_controls [可选] <p>设置为true,以保留不可打印(用于网页)的双向文本字符。</p>
返回
字符串 <p>包含归一化空白的空间字符串。</p>
ord(string $chr, string $encoding): int
↑ 计算给定UTF-8编码字符的Unicode代码点。
信息:与UTF8::chr()相反
示例: UTF8::ord('☃'); // 0x2603
参数
string $chr <p>计算代码点的字符。<p/>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
int <p>给定字符的Unicode代码点,<br> 0表示无效的UTF-8字节序列。</p>
parse_str(string $str, array $result, bool $clean_utf8): bool
↑ 将字符串解析为数组(到第二个参数)。
警告:与"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 <p>结果将返回到这个引用参数中。</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
返回
bool <p>如果PHP无法解析字符串且没有任何$result,则返回<strong>false</strong>。</p>
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): string[]
↑ 创建包含一系列UTF-8字符的数组。
示例: UTF8::range('κ', 'ζ'); // array('κ', 'ι', 'θ', 'η', 'ζ',)
参数
int|string $var1 <p>数值或十六进制代码点,或从UTF-8字符开始的标识符。</p>
int|string $var2 <p>数值或十六进制代码点,或到UTF-8字符结束的标识符。</p>
bool $use_ctype <p>使用ctype检测数值和十六进制,否则我们将使用简单的"is_numeric"。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
- `float|int $step [可选]
如果提供了步长值,则它将用作序列中元素之间的增量。步长应指定为正数。如果未指定,则步长默认为1。
返回
string[]
rawurldecode(string $str, bool $multi_decode): string
↑ 多次解码HTML实体+修复urlencoded-win1252字符。
示例: 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'
参数
string $str <p>输入字符串.</p>
bool $multi_decode <p>尽可能多次解码。</p>
返回
字符串 <p>解码后的URL,作为一个字符串。</p>
regex_replace(string $str, string $pattern, string $replacement, string $options, string $delimiter): string
↑ 将 $str 中所有 $pattern 发生处替换为 $replacement。
参数
string $str <p>输入字符串.</p>
string $pattern <p>正则表达式模式。</p>
string $replacement <p>要替换的字符串。</p>
字符串 $options [可选] <p>要使用的匹配条件.</p>
字符串 $delimiter [可选] <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>
返回
字符串 <p>没有 UTF-BOM 的字符串.</p>
remove_duplicates(string $str, string|string[] $what): string
↑ 从另一个字符串中移除字符串的重复出现。
示例: UTF8::remove_duplicates('öäü-κόσμεκόσμε-äöü', 'κόσμε'); // 'öäü-κόσμε-äöü'
参数
字符串 $str <p>基本字符串.</p>
字符串|string[] $what <p>在基本字符串中要搜索的字符串.</p>
返回
字符串 <p>移除了重复的字符串.</p>
remove_html(string $str, string $allowable_tags): string
↑ 通过 "strip_tags()" 从字符串中移除 html。
参数
string $str <p>输入字符串.</p>
- `字符串 $allowable_tags [可选]
可以使用可选的第二个参数来指定不应该被移除的标签。默认: null
返回
字符串 <p>没有 html 标签的字符串.</p>
remove_html_breaks(string $str, string $replacement): string
↑ 从字符串中移除所有断行 [
| \r\n | \r | \n | .
..]
参数
string $str <p>输入字符串.</p>
字符串 $replacement [可选] <p>默认为一个空字符串.</p>
返回
字符串 <p>没有断行的字符串.</p>
remove_invisible_characters(string $str, bool $url_encoded, string $replacement): string
↑ 从字符串中移除不可见字符。
例如:这可以防止在 ascii 字符之间嵌入 null 字符,如 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 [可选]
尝试移除 URL 编码的控制字符。警告:可能包含错误阳性,例如 aa%0Baa -> aaaa。
默认: false` - `字符串 $replacement [可选]
替换字符。
`返回
字符串 <p>没有不可见字符的字符串.</p>
remove_left(string $str, string $substring, string $encoding): string
↑ 如果存在,则返回一个新字符串,其前缀 $substring 已被移除。
参数
string $str <p>输入字符串.</p>
字符串 $substring <p>要移除的前缀.</p>
字符串 $encoding [可选] <p>默认: 'UTF-8'</p>
返回
字符串 <p>没有前缀 $substring 的字符串.</p>
remove_right(string $str, string $substring, string $encoding): string
↑ 如果存在,则返回一个新字符串,其后缀 $substring 已被移除。
参数
string $str
字符串 $substring <p>要移除的后缀.</p>
字符串 $encoding [可选] <p>默认: 'UTF-8'</p>
返回
字符串 <p>没有后缀 $substring 的字符串 $str.</p>
replace(string $str, string $search, string $replacement, bool $case_sensitive): string
↑ 将 $str 中的所有 $search 替换为 $replacement。
参数
string $str <p>输入字符串.</p>
字符串 $search <p>要搜索的针头.</p>
string $replacement <p>要替换的字符串。</p>
bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>
返回
字符串 <p>有替换部分的字符串.</p>
replace_all(string $str, array $search, array|string $replacement, bool $case_sensitive): string
↑ 将 $str 中的所有 $search 替换为 $replacement。
参数
string $str <p>输入字符串.</p>
数组 $search <p>要搜索的元素.</p>
数组|string $replacement <p>要替换的字符串.</p>
bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>
返回
字符串 <p>有替换部分的字符串.</p>
replace_diamond_question_mark(string $str, string $replacement_char, bool $process_invalid_utf8_chars): string
↑ 将菱形问号(�)和无效的 UTF-8 字符替换为替换字符。
示例: UTF8::replace_diamond_question_mark('中文空白�', ''); // '中文空白'
参数
字符串 $str <p>输入字符串</p>
字符串 $replacement_char <p>替换字符.</p>
布尔值 $process_invalid_utf8_chars
转换无效的UTF-8字符
返回
字符串
没有菱形问号(�)的字符串。
rtrim(string $str, string|null $chars): string
↑ 从UTF-8字符串的末尾删除空白或其他字符。
示例: UTF8::rtrim('-ABC-中文空白- '); // '-ABC-中文空白-'
参数
string $str
要修剪的字符串。
string|null $chars
可选的要从字符串中删除的字符。
返回
string
从右侧删除了不需要字符的字符串。
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('κ'); // 'κ'
参数
string $char
要编码为编号实体的Unicode字符。
bool $keep_ascii_chars
设置为 true 以保留ASCII字符。
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string
给定字符的HTML编号实体。
spaces_to_tabs(string $str, int $tab_length): string
参数
string $str
int $tab_length
返回
string
str_camelize(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 返回字符串的camelCase版本。修剪周围的空格,将数字、空格、破折号和下划线后面的字母大写,并删除空格、破折号以及下划线。
参数
string $str <p>输入字符串.</p>
字符串 $encoding [可选] <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
将 $str 大写的字符串。
str_contains(string $haystack, string $needle, bool $case_sensitive): bool
↑ 如果字符串包含 $needle,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来使比较不区分大小写。
参数
string $haystack
输入字符串。
string $needle
要查找的子串。
bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>
返回
bool
是否 $haystack 包含 $needle。
str_contains_all(string $haystack, array $needles, bool $case_sensitive): bool
↑ 如果字符串包含所有 $needles,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来使比较不区分大小写。
参数
string $haystack
输入字符串。
array $needles
要查找的子串。
bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>
返回
bool
是否 $haystack 包含 $needle。
str_contains_any(string $haystack, array $needles, bool $case_sensitive): bool
↑ 如果字符串包含任何 $needles,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来使比较不区分大小写。
参数
string $haystack
输入字符串。
array $needles
要查找的子串。
bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>
返回
bool
是否 $str 包含 $needle。
str_dasherize(string $str, string $encoding): string
↑ 返回一个由破折号分隔的小写且修剪过的字符串。破折号在字符串的大写字符前插入(除了字符串的第一个字符),以及在空格和下划线的地方插入。
参数
string $str <p>输入字符串.</p>
string $encoding [optional] <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
↑ 返回一个由给定分隔符分隔的小写且修剪过的字符串。
分隔符在字符串的大写字符前插入(除了字符串的第一个字符),以及在空格、破折号和下划线的地方插入。字母分隔符不会被转换为小写。
参数
string $str <p>输入字符串.</p>
字符串分隔符 $delimiter <p>用于分隔字符串各个部分的序列。</p>
string $encoding [optional] <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
↑ 如果字符串以任何给定的子字符串结尾,则返回true,否则返回false。
- 大小写敏感
参数
string $str <p>输入字符串.</p>
string[] $substrings <p>要查找的子字符串。</p>
返回
bool <p>字符串是否以子字符串结尾。</p>
str_ensure_left(string $str, string $substring): string
↑ 确保字符串以$substring开始。如果不存在,则添加到前面。
参数
string $str <p>输入字符串.</p>
string $substring <p>如果不存在则添加的子字符串。</p>
返回
string
str_ensure_right(string $str, string $substring): string
↑ 确保字符串以$substring结束。如果不存在,则添加到后面。
参数
string $str <p>输入字符串.</p>
string $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
↑ 如果字符串以任何给定的子字符串结尾,则返回true,否则返回false。
- 不区分大小写
参数
string $str <p>输入字符串.</p>
string[] $substrings <p>要查找的子字符串。</p>
返回
bool <p>字符串是否以子字符串结尾。</p>
str_insert(string $str, string $substring, int $index, string $encoding): string
↑ 在提供的索引位置将$substring插入字符串中。
参数
string $str <p>输入字符串.</p>
string $substring <p>要插入的字符串。</p>
int $index <p>要插入子字符串的索引。</p>
string $encoding [optional] <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, array $substrings): bool
↑ 如果字符串以任何 $substrings 开头,则返回 true,否则返回 false。
- 不区分大小写
参数
string $str <p>输入字符串.</p>
array $substrings <p>要查找的子串.</p>
返回
bool <p>字符串是否以 $substring 开头.</p>
str_isubstr_after_first_separator(string $str, string $separator, string $encoding): string
↑ 获取分隔符第一次出现后的子串。
参数
string $str <p>输入字符串.</p>
string $separator <p>字符串分隔符.</p>
字符串 $encoding [可选] <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>
字符串 $encoding [可选] <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>
字符串 $encoding [可选] <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>
字符串 $encoding [可选] <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 [可选] <p>默认: false</p>
字符串 $encoding [可选] <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 [可选] <p>默认: false</p>
字符串 $encoding [可选] <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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string
str_limit(string $str, int $length, string $str_add_on, string $encoding): string
↑ 限制字符串中的字符数。
参数
string $str <p>输入字符串.</p>
int $length [可选] <p>默认: 100</p>
string $str_add_on [可选] <p>默认: …</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string
str_limit_after_word(string $str, int $length, string $str_add_on, string $encoding): string
↑ 限制字符串中的字符数,但也在下一个单词之后。
示例: UTF8::str_limit_after_word('fòô bàř fòô', 8, ''); // 'fòô bàř'
参数
string $str <p>输入字符串.</p>
int $length [可选] <p>默认: 100</p>
string $str_add_on [可选] <p>默认: …</p>
string $encoding [optional] <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 [optional] <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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
字符串 <p>字符串,其中其 $str 是最长公共子串.</p>
str_longest_common_suffix(string $str1, string $str2, string $encoding): string
↑ 返回 $str1 和 $str2 之间的最长公共后缀。
参数
string $str1
string $str2 <p>用于比较的第二个字符串.</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string
str_matches_pattern(string $str, string $pattern): bool
↑ 如果 $str 与提供的模式匹配,则返回 true,否则返回 false。
参数
string $str <p>输入字符串.</p>
string $pattern <p>用于匹配的正则表达式模式.</p>
返回
bool <p>是否 $str 匹配模式.</p>
string $str, float $percent, string $obfuscateChar, string[] $keepChars): string
↑ 将字符串转换为混淆字符串。
示例:
UTF8::str_obfuscate('lars@moelleken.org', 0.5, '', ['@', '.']); // 例如 "l**@m**lleke*.r"
参数
string $str
float $percent
string $obfuscateChar
string[] $keepChars
返回
string <p>混淆字符串.</p>
str_offset_exists(string $str, int $offset, string $encoding): bool
↑ 返回是否在索引处存在字符。偏移量可以是负数,以从字符串的最后一个字符开始计数。实现了部分 ArrayAccess 接口。
参数
string $str <p>输入字符串.</p>
int $offset <p>要检查的索引.</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
bool <p>是否索引存在.</p>
str_offset_get(string $str, int $index, string $encoding): string
↑ 返回给定索引处的字符。偏移量可以是负数,以从字符串的最后一个字符开始计数。实现了部分 ArrayAccess 接口,如果索引不存在,则抛出 OutOfBoundsException。
参数
string $str <p>输入字符串.</p>
int $index <p>从其中检索字符的 <strong>索引</strong>.</p>
string $encoding [optional] <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 [optional] <p>用于填充输入字符串的字符串.</p>
- `int|string $pad_type [optional]
可以是 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 [optional] <p>用于填充的字符串,默认为空格。默认: ' '</p>
string $encoding [optional] <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 [optional] <p>用于填充的字符串,默认为空格。默认: ' '</p>
string $encoding [optional] <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 [optional] <p>用于填充的字符串,默认为空格。默认: ' '</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string <p>带有右填充的字符串.</p>
str_repeat(string $str, int $multiplier): string
↑ 重复一个字符串。
示例:UTF8::str_repeat("°~\xf0\x90\x28\xbc", 2); // '°
ð�(¼°ð�(¼'
参数
- `string $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
↑ 打乱字符串中的所有字符。
信息:使用随机算法,在加密目的上较弱
示例:UTF8::str_shuffle('fòô bàř fòô'); // 'àòôřb ffòô '
参数
字符串 $str <p>输入字符串</p>
string $encoding [optional] <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 [optional] <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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
string <p>snake_case格式的字符串.</p>
str_sort(string $str, bool $unique, bool $desc): string
↑ 根据代码点对所有字符进行排序。
示例: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 $input, int $length, bool $clean_utf8, bool $try_to_use_mb_functions): string[]
↑ 将字符串转换为unicode字符数组。
示例:UTF8::str_split('中文空白'); // array('中', '文', '空', '白')
参数
int|string $input <p>要分割成数组的字符串或int</p>
int $length [optional] <p>数组元素的每个最大字符长度</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
bool $try_to_use_mb_functions [optional] <p>设置为false,如果您不想使用"mb_substr"</p>
返回
string[] <p>包含输入字符块的数组.</p>
str_split_array(int[]|string[] $input, int $length, bool $clean_utf8, bool $try_to_use_mb_functions): string[][]
↑ 将字符串转换为Unicode字符数组。
示例: UTF8::str_split_array(['中文空白', 'test'], 2); // [['中文', '空白'], ['te', 'st']]
参数
int[]|string[] $input <p>要分割成数组的字符串数组或整型数组.</p>
int $length [可选] <p>每个数组元素的最大字符长度.</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
bool $try_to_use_mb_functions [optional] <p>设置为false,如果您不想使用"mb_substr"</p>
返回
string[][] <p>包含输入块的数组.</p>
str_split_pattern(string $str, string $pattern, int $limit): string[]
↑ 使用提供的正则表达式分割字符串,返回字符串数组。可选整数 $limit 将截断结果。
参数
string $str
string $pattern <p>用于分割字符串的正则表达式.</p>
int $limit [可选] <p>要返回的最大结果数。默认:-1 表示无限制</p>
返回
string[] <p>字符串数组.</p>
str_starts_with(string $haystack, string $needle): bool
↑ 检查字符串是否以指定的子字符串开头。
示例: 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, array $substrings): bool
↑ 如果字符串以任何 $substrings 开头,则返回 true,否则返回 false。
- 大小写敏感
参数
string $str <p>输入字符串.</p>
array $substrings <p>要查找的子串.</p>
返回
bool <p>字符串是否以 $substring 开头.</p>
str_substr_after_first_separator(string $str, string $separator, string $encoding): string
↑ 获取分隔符第一次出现后的子串。
参数
string $str <p>输入字符串.</p>
string $separator <p>字符串分隔符.</p>
字符串 $encoding [可选] <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>
字符串 $encoding [可选] <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>
字符串 $encoding [可选] <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>
字符串 $encoding [可选] <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 [可选] <p>默认: false</p>
字符串 $encoding [可选] <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 [可选] <p>默认: false</p>
字符串 $encoding [可选] <p>默认: 'UTF-8'</p>
返回
string
str_surround(string $str, string $substring): string
↑ 在给定的子字符串周围包围 $str。
参数
string $str
string $substring <p>要添加到两侧的子字符串.</p>
返回
string <p>两侧都添加了子字符串的字符串.</p>
str_titleize(string $str, array|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
array|string[]|null $ignore [可选] <p>不要大写的单词数组或 null。默认:null</p>
字符串 $encoding [可选] <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 [可选] <p>true === 首先缩进输入字符串</p>
string|null $word_define_chars [可选] <p>用作空格分隔符的字符字符串 === 单词.</p>
返回
string <p>标题化字符串.</p>
str_titleize_for_humans(string $str, array $ignore, string $encoding): string
↑ 返回一个缩进后的正确标题化字符串。
也接受一个数组,$ignore,允许您列出不要大写的单词。
改编自 John Gruber 的脚本。
参数
string $str
array $ignore <p>不要大写的单词数组.</p>
string $encoding [optional] <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): string[]
↑ 将字符串转换为单词数组。
示例: UTF8::str_to_words('中文空白 oöäü#s', '#') // array('', '中文空白', ' ', 'oöäü#s', '')
参数
string $str
字符串 $char_list <p>用于定义“单词”的额外字符。</p>
bool $remove_empty_values <p>删除空值.</p>
int|null $remove_short_values <p>最小字符串长度或 null 以禁用</p>
返回
string[]
str_truncate(string $str, int $length, string $substring, string $encoding): string
↑ 将字符串截断到指定的长度。如果提供了 $substring,并且在截断时发生,则进一步截断字符串,以便在不超出所需长度的情况下附加子串。
参数
string $str
int $length <p>截断字符串所需长度。</p>
string $substring [可选] <p>如果可以适应,则附加的子串。默认:''</p>
字符串 $encoding [可选] <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 [可选] <p>如果可以适应,则附加的子串。默认:''</p>
字符串 $encoding [可选] <p>默认: 'UTF-8'</p>
bool $ignore_do_not_split_words_for_one_word [可选] <p>默认:false</p>
返回
string <p>截断后的字符串。</p>
str_underscored(string $str): string
↑ 返回由下划线分隔的、小写和修剪过的字符串。
在下划线之前插入大写字母(除字符串的第一个字符外),以及空格和破折号。
参数
string $str
返回
string <p>下划线分隔的字符串。</p>
str_upper_camelize(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string
↑ 返回所需字符串的UpperCamelCase版本。它修剪周围的空格,将数字、空格、破折号和下划线之后的字母大写,并删除空格、破折号和下划线。
参数
string $str <p>输入字符串.</p>
字符串 $encoding [可选] <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 <p>UpperCamelCase格式的字符串。</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>
- `int $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 [optional] <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;<br> <strong>> 0</strong> 如果 str1 大于 str2;<br> <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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
int
string(int|int[]|string|string[] $intOrHex): string
↑ 从码点创建UTF-8字符串。
INFO: 与UTF8::codepoints()相反
EXAMPLE: UTF8::string(array(246, 228, 252)); // 'öäü'
参数
int[]|numeric-string[]|int|numeric-string $intOrHex <p>整数或十六进制码点.</p>
返回
string <p>UTF-8编码的字符串.</p>
string_has_bom(string $str): bool
↑ 检查字符串是否以"BOM"(字节顺序标记字符)开头。
EXAMPLE: 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。
EXAMPLE: UTF8::strip_tags("κόσμε\xa0\xa1"); // 'κόσμε'
参数
- `string $str
输入字符串。
您可以使用可选的第二参数来指定不应删除的标签。
HTML注释和PHP标签也会被删除。这是硬编码的,不能通过allowable_tags更改。
` - `bool $clean_utf8 [optional]从字符串中删除非UTF-8字符。
`返回
string <p>删除后的字符串.</p>
strip_whitespace(string $str): string
↑ 删除所有空白字符。这包括制表符和换行符,以及多字节空白,如细空格和表意空格。
EXAMPLE: UTF8::strip_whitespace(' Ο συγγραφέας '); // 'Οσυγγραφέας'
参数
string $str
返回
string
stripos(string $haystack, string $needle, int $offset, string $encoding, bool $clean_utf8): false|int
↑ 在字符串中查找子字符串第一次出现的位置,不区分大小写。
INFO: 使用UTF8::stripos_in_byte()获取字节长度
EXAMPLE: UTF8::stripos('aσσb', 'ΣΣ'); // 1
(σσ == ΣΣ)
参数
string $haystack <p>从其中获取子字符串第一次出现位置的字符串.</p>
string $needle <p>要查找的字符串.</p>
int $offset [optional] <p>在haystack中开始搜索的位置.</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
返回
false|int 返回子字符串在haystack字符串中第一次出现的数字位置,<br> 如果未找到子字符串,则返回 <strong>false</strong>
stripos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子字符串第一次出现的位置,不区分大小写。
参数
- `string $haystack
被检查的字符串。
从haystack开始计数的位置。
` - `int $offset [optional]搜索偏移量。如果未指定,则使用0。
`返回
false|int <p>子字符串在haystack字符串中第一次出现的数字位置。如果未找到子字符串,则返回false.</p>
stristr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 返回从第一次出现子字符串开始(包括)到字符串末尾的所有内容。
EXAMPLE: $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 [optional]
如果 TRUE,则返回包含第一次出现针(不包括针)的草堆部分。
为例如"mb_"函数设置字符集
` - `bool $clean_utf8 [optional]从字符串中删除非UTF-8字符。
`返回
false|string <p>子串,或如果未找到针则返回 <strong>false</strong>。</p>
strlen(string $str, string $encoding, bool $clean_utf8): false|int
↑ 获取字符串长度,而不是字节长度!
INFO: 使用 UTF8::strwidth() 获取字符长度
EXAMPLE: UTF8::strlen("Iñtërnâtiôn\xE9àlizætiøn")); // 20
参数
string $str <p>正在检查长度的字符串。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
返回
- `false|int
字符串 $str 中具有字符编码 $encoding 的字符数量(一个多字节字符计为 +1)。
如果例如 mbstring 未安装且我们处理无效字符,则可以返回 false。`
strlen_in_byte(string $str): int
↑ 获取字符串的长度(字节)。
参数
string $str
返回
int
strnatcasecmp(string $str1, string $str2, string $encoding): int
↑ 使用 "自然顺序" 算法进行不区分大小写的字符串比较。
INFO: UTF8::strcasecmp() 的自然顺序版本
EXAMPLES: 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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
int <strong>< 0</strong> 如果 str1 小于 str2;<br> <strong>> 0</strong> 如果 str1 大于 str2;<br> <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> 如果 str1 小于 str2;<br> <strong>> 0</strong> 如果 str1 大于 str2;<br> <strong>0</strong> 如果它们相等
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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
int <strong>< 0</strong> 如果 <i>str1</i> 小于 <i>str2</i>;;<br> <strong>> 0</strong> 如果 <i>str1</i> 大于 <i>str2</i>;;<br> <strong>0</strong> 如果它们相等
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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
int <strong>< 0</strong> 如果 <i>str1</i> 小于 <i>str2</i>;;<br> <strong>> 0</strong> 如果 <i>str1</i> 大于 <i>str2</i>;;<br> <strong>0</strong> 如果它们相等
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>要在一堆中查找的字符串。<br>或作为 int 的代码点。</p>
int $offset [optional] <p>搜索偏移量。如果未指定,则使用0。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
返回
false|int <p>在字符串中找到的第一个出现的位置(int)。如果未找到,则返回false。</p>
strpos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子串第一次出现的位置。
参数
- `string $haystack
被检查的字符串。
从haystack开始计数的位置。
` - `int $offset [optional]搜索偏移量。如果未指定,则使用0。
`返回
false|int <p>子字符串在haystack字符串中第一次出现的数字位置。如果未找到子字符串,则返回false.</p>
strrchr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 在另一个字符串中查找字符的最后出现。
示例: UTF8::strrchr('κόσμεκόσμε-äöü', 'κόσμε'); // 'κόσμε-äöü'
参数
string $haystack <p>从中获取needle最后出现的字符串。</p>
string $needle <p>要在大海堆中查找的字符串。</p>
- `bool $before_needle [optional]
确定该函数返回大海堆的哪个部分。如果设置为true,则从开始到needle的最后出现返回整个大海堆。如果设置为false,则从needle的最后出现到结束返回整个大海堆。
为例如"mb_"函数设置字符集
` - `bool $clean_utf8 [optional]从字符串中删除非UTF-8字符。
`返回
false|string <p>大海堆的部分或未找到needle时返回false。</p>
strrev(string $str, string $encoding): string
↑ 反转字符串中字符的顺序。
示例: UTF8::strrev('κ-öäü'); // 'üäö-κ'
参数
string $str <p>输入字符串.</p>
string $encoding [optional] <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>要查找的字符串.</p>
- `bool $before_needle [optional]
确定该函数返回大海堆的哪个部分。如果设置为true,则从开始到needle的最后出现返回整个大海堆。如果设置为false,则从needle的最后出现到结束返回整个大海堆。
为例如"mb_"函数设置字符集
` - `bool $clean_utf8 [optional]从字符串中删除非UTF-8字符。
`返回
false|string <p>大海堆的部分或未找到needle时返回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 [optional] <p>要忽略的开始或结束的字符数。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
返回
false|int <p>在大海堆字符串中找到的needle的最后出现的数值位置。如果未找到,则返回false。</p>
strripos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在另一个字符串中找到字符串的最后出现位置,不区分大小写。
参数
- `string $haystack
从中获取needle最后出现位置的字符串。
在大海堆中要查找的字符串。
` - `int $offset [optional]大海堆中开始搜索的位置。
`返回
false|int <p>返回在大海堆字符串中needle最后出现的数值位置,如果未找到则返回false。</p>
strrpos(string $haystack, int|string $needle, int $offset, string $encoding, bool $clean_utf8): false|int
↑ 在字符串中查找子字符串的最后出现位置。
示例: UTF8::strrpos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 13
参数
string $haystack <p>正在检查的字符串,用于查找needle的最后出现位置。</p>
int|string $needle <p>要在一堆中查找的字符串。<br>或作为 int 的代码点。</p>
- `int $offset [optional]
可以指定在字符串中开始搜索任意数量的字符。负值将在字符串的任意点停止搜索,直到字符串的末尾。
设置字符集。
` - `bool $clean_utf8 [optional]从字符串中删除非UTF-8字符。
`返回
false|int <p>在大海堆字符串中找到的needle的最后出现的数值位置。如果未找到,则返回false。</p>
strrpos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子字符串的最后出现位置。
参数
- `string $haystack
正在检查的字符串,用于查找needle的最后出现位置。
在大海堆中要查找的字符串。
` - `int $offset [optional]可以指定在字符串中开始搜索任意数量的字符。负值将在字符串的任意点停止搜索,直到字符串的末尾。
`返回
返回“针”在“草堆”字符串中最后出现的位置的数值。如果未找到“针”,则返回false。
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
↑ 返回从“针”在“草堆”中的第一次出现到“草堆”末尾的部分。
示例: $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 [optional]
如果设置为TRUE,strstr()返回从“针”第一次出现之前的部分(不包括“针”)。
为例如"mb_"函数设置字符集
` - `bool $clean_utf8 [optional]从字符串中删除非UTF-8字符。
`返回
false|string <p>子串,或如果未找到针则返回 <strong>false</strong>。</p>
strstr_in_byte(string $haystack, string $needle, bool $before_needle): false|string
↑ 在另一个字符串中查找字符串的第一个出现。
参数
- `string $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 [optional] <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>替换“from”的字符串。</p>
string|string[] $to [可选] <p>翻译为“to”的字符串。</p>
返回
string <p>此函数返回str的副本,将“from”中的每个字符的所有出现翻译为“to”中相应的字符。</p>
strwidth(string $str, string $encoding, bool $clean_utf8): int
↑ 返回字符串的宽度。
INFO: 使用 UTF8::strlen() 获取字节数。
EXAMPLE: UTF8::strwidth("Iñtërnâtiôn\xE9àlizætiøn")); // 21
参数
string $str <p>输入字符串.</p>
string $encoding [optional] <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
↑ 获取字符串的一部分。
EXAMPLE: UTF8::substr('中文空白', 1, 2); // '文空'
参数
string $str <p>正在检查的字符串。</p>
int $offset <p>在 str 中使用的第一个位置。</p>
int|null $length [可选] <p>返回字符串的最大长度。</p>
string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
返回
false|string <p>由 <i>offset</i> 和 <i>length</i> 参数指定的 <i>str</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
↑ 从偏移量开始,对两个字符串进行二进制安全比较,直到指定的字符长度。
EXAMPLE: 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>比较的长度。默认值为与 str 比较的长度和 main_str 长度减去偏移量的最大值。</p>
bool $case_insensitivity [可选] <p>如果 case_insensitivity 为 TRUE,比较不区分大小写。</p>
string $encoding [optional] <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
↑ 计算子字符串出现的次数。
EXAMPLE: 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 [optional]从字符串中删除非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 [optional]开始计数的偏移量
` - `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 [optional] <p>设置字符集,例如“mb_”函数</p>
返回
int
substr_ileft(string $haystack, string $needle): string
↑ 从字符串($haystack)的开始移除前缀($needle),不区分大小写。
EXMAPLE: 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>。
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
参数
string|string[] $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 [optional] <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 [optional] <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 [optional] <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|int|string $str): bool
参数
bool|int|numeric-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-????- '
参数
string|string[] $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转换为UTF-8。
- 它解码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>如果需要解码HTML实体,则设置为true.</p>
返回
string|string[] <p>UTF-8编码的字符串</p>
to_utf8_string(string $str, bool $decode_html_entity_to_utf8): string
↑ 此函数保留UTF-8字符,同时将几乎所有非UTF-8转换为UTF-8。
- 它解码UTF-8码点和Unicode转义序列。
- 它假定原始字符串的编码为WINDOWS-1252或ISO-8859。
- 警告:它不会删除无效的UTF-8字符,因此在这种情况下您可能需要使用“UTF8::clean()”。
示例:UTF8::to_utf8_string("\u0063\u0061\u0074"); // 'cat'
参数
string $str <p>任何字符串.</p>
bool $decode_html_entity_to_utf8 <p>如果需要解码HTML实体,则设置为true.</p>
返回
string <p>UTF-8编码的字符串</p>
trim(string $str, string|null $chars): string
↑ 从UTF-8字符串的开始和结束处删除空白或其他字符。
信息:这比“trim()”慢。
如果我们使用的是字符串/chars中的≤7位,则我们可以使用原始函数,但检查ASCII(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 [optional] <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字符。
示例: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'
参数
string $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[]
↑ 返回一个包含所有UTF-8空白字符的数组。
参数: 无
返回
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 $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 $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 $width [optional] <p>列宽.</p>
string $break [optional] <p>使用可选的换行符参数断行.</p>
- `bool $cut [optional]
如果设置为true,则字符串总是在指定宽度处或之前被包装。因此,如果您有一个比给定宽度大的单词,它会被分割。
如果此标志为true,则方法将在结果字符串的末尾添加一个$break。
` - `string|null $delimiter [optional]您可以更改默认行为,其中我们通过换行符分割字符串。
`返回
string
ws(): string[]
↑ 返回Unicode空白字符数组。
参数: 无
返回
string[] <p>包含数字代码点作为键,空白字符作为值的数组.</p>
单元测试
- Composer 是运行测试的前提条件。
composer install
- 您可以从根目录运行以下命令来执行测试
./vendor/bin/phpunit
支持
有关支持和捐赠,请访问 GitHub | 问题 | PayPal | Patreon。
有关状态更新和发布公告,请访问 发布 | Twitter | Patreon。
如需专业支持,请联系 我。
感谢
- 感谢 GitHub(微软)提供代码托管和良好的基础设施,包括问题管理等。
- 感谢 IntelliJ,因为他们提供了最好的PHP IDE,并为我提供了PhpStorm的开源许可证!
- 感谢 Travis CI,它是最好的、最简单的持续集成工具!
- 感谢 StyleCI 提供简单但强大的代码风格检查。
- 感谢 PHPStan 和 Psalm 提供真正出色的静态分析工具,并在代码中发现错误!
许可和版权
"Portable UTF8" 是免费软件;您可以在(根据您的选择)以下条款下重新分发和/或修改它:
Unicode处理需要在长期内进行繁琐的工作以实现和维护。因此,受这两个许可证许可的贡献,如单元测试、错误报告、评论或补丁,都是非常受欢迎的。