batrox / portable-utf8
便携式 UTF-8 库 - 优化性能的 PHP (unicode) 字符串函数。
Requires
- php: >=8.0.0
- batrox/portable-ascii: dev-master
- 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
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
This package is auto-updated.
Last update: 2024-09-26 16:38:01 UTC
README
🉑 Portable UTF-8
描述
它用 PHP (PHP 7+) 编写,可以在没有 "mbstring"、"iconv" 或任何其他额外编码 php 扩展的情况下在您的服务器上运行。
Portable 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" 和其他扩展的问题在于,您通常无法确保在服务器上存在特定的一个。如果您依赖于其中之一,则您的应用程序就不再具有可移植性。对于必须在不同的服务器和不同配置上运行的开源应用程序来说,这个问题尤其严重。考虑到这些,我决定编写一个库
需求和推荐
- 运行此库不需要任何扩展。Portable UTF-8 只需要 PHP 4.2.0 及更高版本默认提供的 PCRE 库,并且自 PHP 5.3.0 起无法禁用。PCRE 对 UTF-8 的 "\u" 修饰符支持不是必需的。
- PHP 5.3是最低要求,所有后续版本都可以使用便携式UTF-8。
- 自便携式UTF-8 4.0版本起,PHP 7.0是最低要求,否则Composer将安装较旧版本。
- PHP 8.0也支持,并将适应原生函数的行为。
- 为了加速字符串处理,建议您在服务器上安装“mbstring”或“iconv”,以及PCRE库的最新版本。
- 尽管便携式UTF-8易于使用;从原生API迁移到便携式UTF-8可能对每个人来说都不是直截了当的。强烈建议您在了解原因和后果之前不要更新脚本以包含便携式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 // ä
便携式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(callable(string): string $callback, string $str): string[]
参数
callable(string): string $callback
string $str
返回
string[]
char_at(string $str, int $index, string $encoding): string
↑ 返回索引为 $index 的字符,索引从 0 开始。
参数
string $str <p>输入字符串.</p>
int<1, max> $index <p>字符的位置.</p>
string $encoding [optional] <p>默认为 UTF-8</p>
返回
string <p>索引为 $index 的字符.</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 [optional] <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'], 'Κόσμε'); // ['κ','ό', 'σ', 'μ', 'ε']
参数
callable(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 [optional]
返回
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 [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>如果需要删除UTF-BOM,则设置为true</p>
bool $normalize_whitespace [可选] <p>如果需要标准化空白,则设置为true</p>
bool $normalize_msword [可选] <p>如果需要标准化MS Word字符,例如:"…" => "..."</p>
bool $keep_non_breaking_space [可选] <p>设置为true,以保留非断行空格,与$normalize_whitespace结合使用</p>
bool $replace_diamond_question_mark [可选] <p>如果需要删除菱形问号,例如:"�"</p>
bool $remove_invisible_characters [可选] <p>如果不想删除不可见字符,例如:"\0",则设置为false</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>经过修剪和压缩空白的字符串</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
↑ 创建有效的CSS标识符,例如用于"class"或"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
参数
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。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>false</strong></p>
decimal_to_chr(int|string $int): string
↑ 将int值转换为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>
返回
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>
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>
返回
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 [optional] <p>默认: null === text->length / 2</p>
string $replacer_for_skipped_text [optional] <p>默认: …</p>
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
↑ 将整个文件读入字符串。
EXAMPLE: UTF8::file_get_contents('utf16le.txt'); // ...
WARNING: Do not use UTF-8 Option ($convert_to_utf8) for binary files (e.g.: images) !!!
参数
- `string $filename
要读取的文件名。
在PHP 5之前,此参数名为 use_include_path,是布尔类型。从PHP 5开始,可以使用 FILE_USE_INCLUDE_PATH 来触发包含路径搜索。
` - `resource|null $context [optional]使用 stream_context_create 创建的有效上下文资源。如果您不需要使用自定义上下文,可以通过 &null; 跳过此参数。
` - `int|null $offset [optional]读取开始的偏移量。
` - `int<0, max>|null $max_length [optional]读取数据的最大长度。默认是读取到文件末尾。
` - `int $timeout超时的秒数。
` - `bool $convert_to_utf8 WARNING!!!可能无法为某些文件使用此选项,因为这些文件使用了非默认的utf-8字符。二进制文件(如图像或pdf)将不会转换。
` - `string $from_encoding [optional]e.g. 'UTF-16', 'UTF-8', 'ISO-8859-1', etc.
空字符串将触发自动检测。
返回
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_UNSAFE_RAW)); // 'bar'
参数
- `int $type
以下之一: INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SERVER 或 INPUT_ENV。
要获取的变量的名称。
` - `int $filter [optional]要应用的过滤器ID。手册页列出了可用的过滤器。
` - `int|int[]|null $options [optional]选项的关联数组或标志位的按位或。如果过滤器接受选项,则可以在数组的 "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 [optional]将缺失的键作为 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 [optional]选项的关联数组或标志的位或。如果过滤器接受选项,则可以在数组的 "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 $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, ];
数据 = ['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 [optional]将缺失的键作为 NULL 添加到返回值中。
`返回
- `array<string,mixed>|false|null
在成功时包含请求变量的值的数组,或在失败时返回 FALSE。如果过滤失败,则数组值将为 FALSE,如果变量未设置,则返回 NULL。
finfo_loaded(): bool
↑ 检查服务器上是否可用 finfo。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>false</strong></p>
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 值,否则返回 <strong>null</strong>。
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 [可选] <p>随机选择的字符字符串。</p>
string $encoding [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
返回
string
get_unique_string(int|string $extra_entropy, bool $use_md5): 非空字符串
参数
int|string $extra_entropy [可选] <p>通过字符串或整数值提供额外的熵值.</p>
bool $use_md5 [可选] <p>是否以md5散列返回唯一标识符?默认:true</p>
返回
非空字符串
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 [可选] <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 [可选]设置例如"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标签。
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 [可选]与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版本
信息:查看"UTF8::htmlentities()"
示例:UTF8::htmlspecialchars('<白-öäü>'); // '<白-öäü>'
参数
- `T $str
正在转换的字符串。
以下标志之一或多个的位掩码,指定如何处理引号、无效的代码单元序列和使用的文档类型。默认为ENT_COMPAT | ENT_HTML401。
可用的flags常量` - `string $encoding [可选]定义转换中使用的编码。
对于此函数,如果字符串本身适用于编码,则ISO-8859-1、ISO-8859-15、UTF-8、cp866、cp1251、cp1252和KOI8-R编码在效果上是等效的,因为受htmlspecialchars影响的字符在这些编码中位于相同的位置。
` - `bool $double_encode [可选]当double_encode关闭时,PHP不会对现有的HTML实体进行编码,默认是将所有内容转换为编码。
`返回
- `string
转换后的字符串。
如果输入的string在给定的encoding中包含无效的代码单元序列,将返回空字符串,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志。
`iconv_loaded(): bool
↑ 检查服务器上是否可用iconv。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>false</strong></p>
int_to_hex(int $int, string $prefix): string
↑ 将整数转换为十六进制U+xxxx代码点表示。
信息:与UTF8::hex_to_int()相反
示例:UTF8::int_to_hex(241); // 'U+00f1'
参数
int $int <p>要转换为十六进制代码点的整数.</p>
string $prefix [optional]
返回
代码点,或者在失败时为空字符串
intlChar_loaded(): bool
↑ 检查服务器上是否可用intl-char。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>false</strong></p>
intl_loaded(): bool
↑ 检查服务器上是否可用intl。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>false</strong></p>
is_alpha(string $str): bool
↑ 如果字符串只包含字母字符,则返回true,否则返回false。
参数
string $str <p>输入字符串.</p>
返回
bool <p>是否字符串只包含字母字符.</p>
is_alphanumeric(string $str): bool
↑ 如果字符串只包含字母和数字字符,则返回true,否则返回false。
参数
string $str <p>输入字符串.</p>
返回
bool <p>是否字符串只包含字母数字字符.</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,请使用 "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<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 [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 $ignore_control_characters): bool
↑ 如果字符串只包含可打印(非隐藏)字符,则返回 true,否则返回 false。
参数
string $str <p>输入字符串.</p>
bool $ignore_control_characters [optional] <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 字节序列。
示例: 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 [可选]如果为 TRUE,则返回的对象将被转换为关联数组。
` - `int $depth [可选]用户指定的递归深度。
` - `int $options [可选]JSON 解码选项的位掩码。目前仅支持 JSON_BIGINT_AS_STRING(默认将大整数转换为浮点数)
`返回
mixed <p>json 中编码的值,以适当的 PHP 类型。true、false 和 null(不区分大小写)分别作为 TRUE、FALSE 和 NULL 返回。如果 json 无法解码或编码数据超过递归限制,则返回 NULL。</p>
json_encode(mixed $value, int $options, int $depth): false|string
↑ (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
返回值的 JSON 表示形式。
示例: UTF8::json_encode(array(1, '¥', 'ä')); // '[1,"\u00a5","\u00e4"]'
参数
- `mixed $value
要编码的值。可以是任何类型,但不能是资源。
所有字符串数据必须是 UTF-8 编码。
PHP 实现了 JSON 的超集 - 它还会编码和解码标量类型和 NULL。JSON 标准仅支持这些值在数组或对象内部嵌套时。
` - `int $options [可选]由 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 [可选]设置最大深度。必须大于零。
`返回
false|string <p>成功时返回 JSON 编码的 <strong>string</strong> 或失败时返回 <strong>FALSE</strong>。</p>
json_loaded(): bool
↑ 检查服务器上是否可用 JSON。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>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
参数
string $str <p>输入字符串</p>
string $encoding [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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 [optional] <p>排除某些单词</p>
string $char_list [optional] <p>包含在单词中但不作为新单词开始的额外字符</p>
string $encoding [optional] <p>设置字符集</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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 [optional] <p>定义插入的成本</p>
int $replacementCost [optional] <p>定义替换的成本</p>
int $deletionCost [optional] <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。
参数: 无
返回
bool <p><strong>true</strong> 如果可用,否则 <strong>false</strong></p>
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 <p>数字或十六进制代码点,或一个UTF-8字符作为起始点.</p>
int|string $var2 <p>数字或十六进制代码点,或一个UTF-8字符作为结束点.</p>
bool $use_ctype <p>使用ctype检测数字和十六进制,否则我们将使用简单的"is_numeric"</p>
string $encoding [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
- `float|int $step [可选]
如果提供了步长值,它将被用作序列元素之间的增量。步长应该是一个正数。如果没有指定,步长将默认为1。
返回
list<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'
参数
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
↑ 将$pattern在$str中的所有出现替换为$replacement。
参数
string $str <p>输入字符串.</p>
string $pattern <p>正则表达式模式.</p>
string $replacement <p>要替换的字符串.</p>
string $options [可选] <p>要使用的匹配条件.</p>
string $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>
返回
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 [可选]
您可以使用可选的第二个参数来指定不应删除的标签。默认:null
返回
string <p>没有html标签的字符串.</p>
remove_html_breaks(string $str, string $replacement): string
↑ 从字符串中删除所有断行符[
| \r\n | \r | \n | ...]。
参数
string $str <p>输入字符串.</p>
string $replacement [可选] <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 [可选] <p>默认: 'UTF-8'</p>
返回
string <p>没有前缀$substring的字符串.</p>
remove_invisible_characters(string $str, bool $url_encoded, string $replacement, bool $keep_basic_control_characters): string
↑ 从字符串中删除不可见字符。
例如:这可以防止在ascii字符之间嵌入空字符,如Java\0script。
示例: UTF8::remove_invisible_characters("κόσ\0με"); // 'κόσμε'
复制并粘贴自 https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/Common.php
参数
string $str <p>输入字符串.</p>
- `布尔 $url_encoded [可选]
尝试移除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
字符串 $substring <p>要移除的后缀.</p>
string $encoding [可选] <p>默认: 'UTF-8'</p>
返回
字符串 <p>移除后缀 $substring 的 $str 字符串.</p>
remove_left(string $str, string $substring, string $encoding): string
↑ 返回一个新字符串,如果存在则移除了前缀 $substring。
参数
string $str <p>输入字符串.</p>
string $substring <p>要删除的前缀.</p>
string $encoding [可选] <p>默认: 'UTF-8'</p>
返回
string <p>没有前缀$substring的字符串.</p>
remove_right(string $str, string $substring, string $encoding): string
↑ 返回一个新字符串,如果存在则移除了后缀 $substring。
参数
string $str
字符串 $substring <p>要移除的后缀.</p>
string $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>
布尔 $case_sensitive [可选] <p>是否强制执行大小写敏感。默认:true</p>
返回
字符串 <p>替换部分的字符串.</p>
replace_all(string $str, string[] $search, string|string[] $replacement, bool $case_sensitive): string
↑ 将 $str 中的所有 $search 替换为 $replacement。
参数
string $str <p>输入字符串.</p>
字符串[] $search <p>要搜索的元素.</p>
字符串|string[] $replacement <p>要替换的字符串.</p>
布尔 $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('中文空白�', ''); // '中文空白'
参数
string $str <p>输入字符串</p>
字符串 $replacement_char <p>替换字符.</p>
布尔 $process_invalid_utf8_chars <p>转换无效的UTF-8字符 </p>
返回
字符串 <p>不含菱形问号(�)的字符串.</p>
rtrim(string $str, string|null $chars): string
↑ 从UTF-8字符串的末尾删除空白或其他字符。
示例: UTF8::rtrim('-ABC-中文空白- '); // '-ABC-中文空白-'
参数
字符串 $str <p>要修剪的字符串.</p>
字符串|null $chars <p>可选要删除的字符.</p>
返回
字符串 <p>从右侧删除不需要的字符的字符串.</p>
showSupport(bool $useEcho): string|void
↑ 警告:默认打印本机UTF-8支持(库),例如用于调试。
参数
布尔 $useEcho
返回
字符串|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>
布尔 $keep_ascii_chars <p>设置为 <strong>true</strong> 以保留ASCII字符.</>
string $encoding [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
返回
字符串 <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 [可选] <p>默认: 'UTF-8'</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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>
布尔 $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>
布尔 $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>
布尔 $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 [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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>
返回
bool <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>
返回
bool <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 [可选] <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 [可选] <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 [可选] <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 [可选] <p>默认: 'UTF-8'</p>
返回
string
str_isubstr_first(string $str, string $needle, bool $before_needle, string $encoding): string
↑ 获取"$needle"首次出现之后的子字符串(或通过"$before_needle"在之前)。
参数
string $str <p>输入字符串.</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [可选] <p>默认: 'UTF-8'</p>
返回
string
str_isubstr_last(string $str, string $needle, bool $before_needle, string $encoding): string
↑ 获取"$needle"最后出现之后的子字符串(或通过"$before_needle"在之前)。
参数
string $str <p>输入字符串.</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $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 [可选] <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>包含最长公共子字符串的字符串.$str.</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
↑ 如果字符串$str匹配提供的模式,则返回true,否则返回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('lars@moelleken.org', 0.5, '', ['@', '.']); // e.g. "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 [可选] <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 字符串填充到指定长度。
EXAMPLE: 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 [可选] <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 [可选] <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 [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
返回
string <p>应用右填充的字符串。</p>
str_repeat(string $str, int $multiplier): string
↑ 重复一个字符串。
EXAMPLE: 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>要拆分为数组的字符串[] 或 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 [可选] <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 [可选] <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 [可选] <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 [可选] <p>默认: 'UTF-8'</p>
返回
string
str_substr_first(string $str, string $needle, bool $before_needle, string $encoding): string
↑ 获取"$needle"首次出现之后的子字符串(或通过"$before_needle"在之前)。
参数
string $str <p>输入字符串.</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [可选] <p>默认: 'UTF-8'</p>
返回
string
str_substr_last(string $str, string $needle, bool $before_needle, string $encoding): string
↑ 获取"$needle"最后出现之后的子字符串(或通过"$before_needle"在之前)。
参数
string $str <p>输入字符串.</p>
string $needle <p>要查找的字符串.</p>
bool $before_needle [optional] <p>默认: false</p>
string $encoding [可选] <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 [可选] <p>默认: 'UTF-8'</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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 [可选] <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 [可选] <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
返回
string <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 [可选] <p>默认: 'UTF-8'</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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>
- `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<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 [可选] <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>
返回
string <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("<span>κόσμε\xa0\xa1</span>"); // 'κόσμε'
参数
- `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
↑ 在字符串中查找子字符串首次出现的位置,不区分大小写。
INFO:使用 UTF8::stripos_in_byte() 获取字节长度
示例: UTF8::stripos('aσσb', 'ΣΣ'); // 1
(σσ == ΣΣ)
参数
string $haystack <p>从其中获取子字符串首次出现位置的字符串.</p>
string $needle <p>要查找的字符串.</p>
int $offset [可选] <p>在 haystack 中开始搜索的位置.</p>
string $encoding [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
返回
false|int 返回 needle 在 haystack 字符串中首次出现的 (int) 数值位置,如果未找到 needle,则返回 false
stripos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子字符串首次出现的位置,不区分大小写。
参数
- `string $haystack
要检查的字符串。
从 haystack 开始计算的起始位置。
` - `int $offset [可选]搜索偏移量。如果未指定,则使用 0。
`返回
false|int <p>在 haystack 字符串中 needle 首次出现的数值位置。如果未找到 needle,则返回 false.</p>
stristr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string
↑ 返回从首次出现 needle 开始(包括 needle)到结束的所有 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,它返回 needle 首次出现之前的部分 haystack(不包括 needle)。
设置例如"mb_"函数的字符集
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回
false|string <p>子字符串,或如果未找到 needle,则返回 false</p>
strlen(string $str, string $encoding, bool $clean_utf8): false|int
↑ 获取字符串长度,而不是字节长度!
INFO:使用 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)。
如果例如 mbstring 未安装,并且我们处理无效字符,则可以返回 false。`
strlen_in_byte(string $str): int
↑ 获取字符串的字节长度。
参数
string $str
返回
int
strnatcasecmp(string $str1, string $str2, string $encoding): int
↑ 使用“自然顺序”算法进行不区分大小写的字符串比较。
INFO: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<br> <strong>> 0</strong> 如果str1大于str2<br> <strong>0</strong> 如果它们相等
strnatcmp(string $str1, string $str2): int
↑ 使用“自然顺序”算法进行字符串比较
INFO:UTF8::strcmp() 的自然顺序版本
示例: 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 个字符的不区分大小写的字符串。
示例: 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> 如果 <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 个字符的字符串。
示例: 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> 如果 <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
↑ 在字符串中搜索一组字符中的任何一个。
示例: 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() 来获取字节长度
示例: UTF8::strpos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 8
参数
string $haystack <p>从其中获取子字符串首次出现位置的字符串.</p>
int|string $needle <p>要查找的子字符串。可以是字符串,也可以是 int 类型的代码点.</p>
int $offset [可选] <p>搜索偏移量。如果没有指定,则默认为 0.</p>
string $encoding [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
返回
false|int needle 在 haystack 字符串中首次出现的数字位置。如果未找到 needle,则返回 false。
strpos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子字符串首次出现的位置。
参数
- `string $haystack
要检查的字符串。
从 haystack 开始计算的起始位置。
` - `int $offset [可选]搜索偏移量。如果未指定,则使用 0。
`返回
false|int <p>在 haystack 字符串中 needle 首次出现的数值位置。如果未找到 needle,则返回 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>在 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>要查找的字符串.</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 或字符串 <p>如果未找到针,则返回 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>干草堆字符串中针的最后一次出现的数字位置。<br>如果找不到针,则返回 false。</p>
strripos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在另一个字符串中查找字符串最后一次出现的位置,不区分大小写。
参数
- `string $haystack
从该字符串中获取针的最后一次出现的位置的字符串。
在干草堆中查找的字符串。
` - `int $offset [可选]在干草堆中开始搜索的位置。
`返回
false|int <p>返回干草堆字符串中针的最后一次出现的数字位置,如果找不到针,则返回 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>要查找的子字符串。可以是字符串,也可以是 int 类型的代码点.</p>
- `int $offset [可选]
指定在字符串中开始搜索的任意数量的字符。负值将在字符串末尾之前任意点停止搜索。
设置字符集。
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回
false|int <p>干草堆字符串中针的最后一次出现的数字位置。<br>如果找不到针,则返回 false。</p>
strrpos_in_byte(string $haystack, string $needle, int $offset): false|int
↑ 在字符串中查找子字符串最后一次出现的位置。
参数
- `string $haystack
检查字符串,用于查找针的最后一次出现。
在干草堆中查找的字符串。
` - `int $offset [可选]指定在字符串中开始搜索的任意数量的字符。负值将在字符串末尾之前任意点停止搜索。
`返回
false|int <p>干草堆字符串中针的最后一次出现的数字位置。如果找不到针,则返回 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 [optional] <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 [可选]
如果 TRUE,strstr() 返回针第一次出现之前的干草堆的一部分(不包括针)。
设置例如"mb_"函数的字符集
` - `bool $clean_utf8 [可选]从字符串中移除非UTF-8字符。
`返回
false|string <p>子字符串,或如果未找到 needle,则返回 false</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 [可选]设置字符集。
` - `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 [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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 [optional] <p>设置字符集</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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>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
↑ 从偏移量开始,对两个字符串进行二进制安全的比较,直到指定字符长度。
示例: 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>比较的起始位置。如果为负,则从字符串的末尾开始计数。
int|null $length [optional] <p>比较的长度。默认值是主字符串长度与str比较长度之差的最大值加上偏移量。</p>
bool $case_insensitivity [optional] <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 [optional] <p>开始计数的偏移量。</p>
- `int|null $length [optional]
指定偏移量之后搜索子字符串的最大长度。如果偏移量加长度大于待搜索字符串长度,则输出警告。
设置例如"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 [optional]指定偏移量之后搜索子字符串的最大长度。如果偏移量加长度大于待搜索字符串长度,则输出警告。
`返回
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>
布尔 $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>根据指定的偏移量(offset)和长度(length)参数返回字符串的片段。</p><p>如果字符串(str)的长度小于偏移量字符数,则返回FALSE。</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
如果起始位置为正数,则替换将从字符串中的起始位置的偏移量开始。
如果起始位置为负数,替换将从字符串末尾开始计算的第 start 个字符处开始。
如果提供且为正数,表示要替换的字符串部分的长度。如果为负数,表示从字符串末尾开始计算,停止替换的字符数。如果没有提供,则默认为 strlen( string );即替换到字符串末尾。当然,如果长度为零,则此函数将具有在给定起始偏移量处将替换插入字符串的效果。
` - `string $encoding [可选]设置例如"mb_"函数的字符集
`返回
string|string[] <p>返回的结果字符串。如果 string 是数组,则返回数组。</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 [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
返回
string <p>将 $str 中所有字符转换为标题大小的字符串。</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()”慢。
如果我们使用的是字符串/字符中的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 [可选] <p>设置字符集,例如"mb_"函数的字符集</p>
bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符</p>
string|null $lang [optional] <p>对于特殊情况设置语言:az, el, lt, tr</p>
bool $try_to_keep_the_string_length [optional] <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 [optional] <p>排除某些单词</p>
string $char_list [optional] <p>包含在单词中但不作为新单词开始的额外字符</p>
string $encoding [optional] <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'
参数
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 [可选] <p>列宽.</p>
string $break [可选] <p>使用可选的断行参数断行行.</p>
- `bool $cut [可选]
如果设置断行为 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 [可选] <p>列宽.</p>
string $break [可选] <p>使用可选的断行参数断行行.</p>
- `bool $cut [可选]
如果设置断行为 true,则字符串总是在指定的宽度处或之前进行换行。所以如果你有一个比给定宽度大的单词,它将被拆分。
如果此标志为 true,则方法将在结果字符串末尾添加一个 $break。
` - `non-empty-string|null $delimiter [可选]你可以更改默认行为,即通过换行分割字符串。
`返回
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 处理需要繁琐的工作来实施和维护。因此,我们非常欢迎根据这两个许可证之一许可的贡献,如单元测试、错误报告、评论或补丁。