erfanhemmati/portable-utf8

便携式UTF-8库 - 性能优化的PHP(Unicode)字符串函数。

dev-main 2023-04-23 12:47 UTC

This package is auto-updated.

Last update: 2024-09-23 16:06:30 UTC


README

Build Status Build status FOSSA Status codecov.io Codacy Badge Latest Stable Version Total Downloads License Donate to this project using PayPal Donate to this project using Patreon

🉑 Portable UTF-8

描述

它用PHP(PHP 7+)编写,可以在没有"mbstring"、"iconv"或其他任何额外编码php扩展的情况下在你的服务器上运行。

Portable UTF-8的优点是易于使用,易于打包。这个库还将自动检测你的服务器环境,如果安装了php扩展,它将使用它们,因此你可以获得最佳性能。

如果需要,我们将使用Symfony Polyfills作为后备。(https://github.com/symfony/polyfill

该项目基于...

演示

在这里,你可以测试这个库的一些基本函数,并且可以将一些结果与原生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只需要PCRE库,它自PHP 4.2.0以来就默认可用,自PHP 5.3.0以来无法禁用。PCRE对UTF-8的支持不是必需的。
  • PHP 5.3是最低要求,所有后续版本都与Portable 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”的适配器,因此您也可以在共享的网站上使用。

使用

示例 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): string

在字符串前面添加UTF-8 BOM字符,并返回整个字符串。

INFO:如果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 [可选] <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

将二进制转换为字符串。

INFO:与UTF8::str_to_binary()相反

示例: UTF8::binary_to_str('11110000100111111001100010000011'); // '😃'

参数

  • string $bin 1|0

返回

  • string

bom(): string

返回UTF-8字节顺序标记字符。

INFO:查看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

返回索引为 $index 的字符,索引从0开始。

参数

  • string $str <p>输入字符串.</p>
  • int $index <p>字符的位置.</p>
  • string $encoding [可选] <p>默认是UTF-8</p>

返回

  • string <p>索引为 $index 的字符.</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()相反

EXAMPLE: UTF8::chr(0x2603); // '☃'

参数

  • int $code_point <p>要生成字符的码点</p>
  • string $encoding [可选] <p>默认是UTF-8</p>

返回

  • string|null <p>多字节字符,失败或空输入时返回null</p>

chr_map(callable $callback, string $str): string[]

将回调函数应用于字符串中的所有字符。

EXAMPLE: 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

EXAMPLE: 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()相反

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 $body, int $chunk_length, string $end): string

使用指定的行结束字符,将字符串拆分为更小的块和多个行。

EXAMPLE: 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字符以及需要删除的其他字符。

EXAMPLE: UTF8::clean("\xEF\xBB\xBF„Abcdef\xc2\xa0\x20…” — 😃 - Düsseldorf", true, true); // '„Abcdef  …” — 😃 - Düsseldorf'

参数

  • string $str <p>要清理的字符串</p>
  • bool $remove_bom [optional] <p>设置为true,如果您需要删除UTF-BOM</p>
  • bool $normalize_whitespace [optional] <p>设置为true,如果您需要规范化空白字符</p>
  • bool $normalize_msword [optional] <p>设置为true,如果您需要规范化MS Word字符,例如:"…" => "..."</p>
  • bool $keep_non_breaking_space [optional] <p>设置为true,为了与$normalize_whitespace一起保持非换行空格</p>
  • bool $replace_diamond_question_mark [optional] <p>设置为true,如果您需要删除菱形问号,例如:"�"</p>
  • bool $remove_invisible_characters [optional] <p>设置为false,如果您不想删除不可见字符,例如:"\\0"</p>
  • `bool $remove_invisible_characters_url_encoded [optional]

    设置为 true,表示不删除不可见的 URL 编码字符,例如:“%0B”。
    警告:可能包含假阳性,例如 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[]

    代码点数组
    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)

参数

  • string $str <p>输入字符串.</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • bool $try_to_use_mb_functions [可选] <p>设置为 false,如果您不想使用</p>

返回

  • int[] <p>字符作为键,其计数作为值的关联数组.</p>

css_identifier(string $str, string[] $filter, bool $strip_tags, bool $strtolower): string

为例如 "class"-或 "id"-属性创建一个有效的 CSS 标识符。

示例:UTF8::css_identifier('123foo/bar!!!'); // _23foo-bar

复制粘贴自 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,否则为 false</strong></p>

decimal_to_chr(int|string $int): string

将整数值转换为 UTF-8 字符。

INFO:与 UTF8::string() 相反

示例:UTF8::decimal_to_chr(931); // 'Σ'

参数

  • int|string $int

返回

  • string

decode_mimeheader(string $str, string $encoding): false|string

解码 MIME 头字段

参数

  • string $str
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • 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 [可选] <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 [可选] <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 [可选] <p>强制使用新编码(我们尝试修复UTF-8的损坏/双重编码)<br>否则我们自动检测当前字符串编码</p>
  • string $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
  • string $from_charset [可选] <p>设置输入字符集。</p>
  • string $to_charset [可选] <p>设置输出字符集。</p>
  • string $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 [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • string

file_get_contents(string $filename, bool $use_include_path, resource|null $context, int|null $offset, int|null $max_length, int $timeout, bool $convert_to_utf8, string $from_encoding): false|string

将整个文件读取到字符串中。

示例: UTF8::file_get_contents('utf16le.txt'); // ...

WARNING:不要为二进制文件(例如:图片)使用UTF-8选项($convert_to_utf8)!!!

参数

  • `string $filename

    要读取的文件名。

` - `bool $use_include_path [可选]

在PHP 5之前,此参数名为use_include_path,是一个布尔值。从PHP 5开始,可以使用FILE_USE_INCLUDE_PATH来触发包含路径搜索。

` - `资源或null $context [可选]

使用stream_context_create创建的有效上下文资源。如果您不需要使用自定义上下文,可以通过&null;省略此参数。

` - `int或null $offset [可选]

读取开始的偏移量。

` - `int或null $max_length [可选]

读取数据的最大长度。默认为读取到文件末尾。

` - `int $timeout

超时时间(秒)。

` - `bool $convert_to_utf8 警告!!!

对于某些文件,您可能无法使用此选项,因为这些文件使用了非默认的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(字节顺序标记)字符开头。

示例: 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转换。

示例: UTF8::filter(array("\xE9", 'à', 'a')); // array('é', 'à', 'a')

参数

  • TFilter $var
  • int $normalization_form
  • string $leading_combining

返回

  • mixed

filter_input(int $type, string $variable_name, int $filter, int|int[]|null $options): mixed

"filter_input()"包装器,将标准化为UTF-8 NFC,在需要时从WINDOWS-1252转换。

通过名称获取特定外部变量,并可对其进行过滤。

示例: // _GET['foo'] = 'bar'; UTF8::filter_input(INPUT_GET, 'foo', FILTER_UNSAFE_RAW)); // 'bar'

参数

  • `int $type

    可以是 INPUT_GETINPUT_POSTINPUT_COOKIEINPUT_SERVERINPUT_ENV 之一。

` - `string $variable_name

要获取的变量的名称。

` - `int $filter [可选]

要应用的过滤器的ID。手册页面列出了可用的过滤器。

` - `int|int[]|null $options [可选]

选项的关联数组或标志的按位或。如果过滤器接受选项,则可以在数组的"flags"字段中提供标志。

`

返回

  • `mixed

    在成功时请求变量的值,如果过滤失败,则返回 FALSE,如果 variable_name 变量未设置,则返回 NULL。如果使用了标志 FILTER_NULL_ON_FAILURE,则如果变量未设置,返回 FALSE,如果过滤失败,返回 NULL

`

filter_input_array(int $type, array|null $definition, bool $add_empty): mixed

"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_GETINPUT_POSTINPUT_COOKIEINPUT_SERVERINPUT_ENV 之一。

` - `array|null $definition [可选]

定义参数的数组。一个有效的键是一个包含变量名称的字符串,一个有效的值可以是过滤器类型,或者是一个可选地指定过滤器、标志和选项的数组。如果值是数组,有效的键是“filter”指定过滤器类型,“flags”指定应用于过滤器的任何标志,以及“options”指定应用于过滤器的任何选项。请参阅下面的示例以获得更好的理解。

此参数也可以是一个包含过滤器常量的整数。然后所有输入数组的值都将通过此过滤器进行筛选。

` - `bool $add_empty [可选]

将缺失的键添加为 NULL 到返回值中。

`

返回

  • `mixed

    包含请求变量的值的数组在成功时,或者在失败时返回 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

    要过滤的值。

` - `int $filter [可选]

要应用的过滤器的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

    一个包含要过滤的数据的字符串键的数组。

` - `array|int|null $definition [可选]

定义参数的数组。一个有效的键是一个包含变量名称的字符串,一个有效的值可以是过滤器类型,或者是一个可选地指定过滤器、标志和选项的数组。如果值是数组,有效的键是“filter”指定过滤器类型,“flags”指定应用于过滤器的任何标志,以及“options”指定应用于过滤器的任何选项。请参阅下面的示例以获得更好的理解。

此参数也可以是一个包含过滤器常量的整数。然后所有输入数组的值都将通过此过滤器进行筛选。

` - `bool $add_empty [可选]

将缺失的键添加为 NULL 到返回值中。

`

返回

  • `mixed

    包含请求变量的值的数组在成功时,或者在失败时返回 FALSE。如果过滤器失败,数组值将返回 FALSE,如果变量未设置,则返回 NULL

`

finfo_loaded(): bool

检查服务器上是否可用 finfo。

参数:

返回

  • bool <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 [可选] <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'

如果您接收到的 UTF-8 字符串是从 Windows-1252 转换为 ISO-8859-1 的,忽略 Windows-1252 的字符 80 到 9F,请使用此函数修复它。查看: 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 已使用且可用,则返回布尔值;否则返回 <strong>null</strong>

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 [可选] <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()相反

示例: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()相反

示例: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()相反

示例:UTF8::html_encode('中文空白'); // '中文空白'

参数

  • string $str <p>要作为编号实体编码的Unicode字符串.</p>
  • bool $keep_ascii_chars [可选] <p>保留ASCII字符.</p>
  • string $encoding [可选] <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()相反

示例:UTF8::html_entity_decode('中文空白'); // '中文空白'

参数

  • `string $str

    输入字符串。

` - `int|null $flags [可选]

一个或多个以下标志的组合位掩码,指定如何处理引号和要使用的文档类型。默认为ENT_COMPAT | ENT_HTML401。

可用的flags常量

` - `string $encoding [可选]

为例如"mb_"函数设置字符集

`

返回

  • string 解码后的字符串

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实体:UTF-8版本的htmlentities()。

示例:UTF8::htmlentities('<白-öäü>'); // '<白-öäü>'

参数

  • `string $str

    输入字符串。

` - `int $flags [可选]

一个或多个以下标志的组合位掩码,指定如何处理引号、无效的代码单元序列以及使用的文档类型。默认为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版本

INFO: 请查看 "UTF8::htmlentities()"

EXAMPLE: UTF8::htmlspecialchars('<白-öäü>'); // '<白-öäü>'

参数

  • `string $str

    待转换的字符串。

` - `int $flags [可选]

一个或多个以下标志的组合位掩码,指定如何处理引号、无效的代码单元序列以及使用的文档类型。默认为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_IGNOREENT_SUBSTITUTE标志。

iconv_loaded(): bool

检查服务器上是否可用iconv。

参数:

返回

  • bool <p><strong>如果可用,则为 true,否则为 false</strong></p>

int_to_hex(int $int, string $prefix): string

将整数转换为十六进制U+xxxx代码点表示。

INFO: 与UTF8::hex_to_int()相反

EXAMPLE: UTF8::int_to_hex(241); // 'U+00f1'

参数

  • int $int <p>要转换为十六进制代码点的整数。</p>
  • string $prefix [optional]

返回

  • string 代码点,或者在失败时为空字符串

intlChar_loaded(): bool

检查服务器上是否可用intl-char。

参数:

返回

  • bool <p><strong>如果可用,则为 true,否则为 false</strong></p>

intl_loaded(): bool

检查服务器上是否可用intl。

参数:

返回

  • bool <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。

EXAMPLE: 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。

EXAMPLE: UTF8::is_base64('4KSu4KWL4KSo4KS/4KSa'); // true

参数

  • string|null $str <p>输入字符串。</p>
  • bool $empty_string_is_valid [可选] <p>空字符串是否有效base64?</p>

返回

  • bool <p>$str是否base64编码。</p>

is_binary(int|string $input, bool $strict): bool

检查输入是否为二进制... (看起来像是一个黑客行为)。

EXAMPLE: UTF8::is_binary(01); // true

参数

  • int|string $input
  • bool $strict

返回

  • bool

is_binary_file(string $file): bool

检查文件是否为二进制。

EXAMPLE: 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

检查给定的字符串是否等于任何 "字节顺序标记"。</p>

WARNING: 使用 "UTF8::string_has_bom()" 如果您将检查字符串中的 BOM。

EXAMPLE: UTF8::is_bom("\xef\xbb\xbf"); // true

参数

  • string $str <p>输入字符串.</p>

返回

  • bool <p><strong>true</strong> 如果 $utf8_chr 是字节顺序标记,否则 <strong>false</strong>。</p>

is_empty(array|float|int|string $str): bool

确定字符串是否被认为是空的。</p>

如果变量不存在或其值等于 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 标签。

EXAMPLE: 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 字符串。

EXAMPLE: 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 字节序列。

EXAMPLE: UTF8::is_utf8(['Iñtërnâtiônàlizætiøn', 'foo']); // true // UTF8::is_utf8(["Iñtërnâtiônàlizætiøn\xA0\xA1", 'bar']); // false

参数

  • int|string|string[]|null $str <p>要检查的输入。</p>
  • bool $strict <p>检查字符串是否不是 UTF-16 或 UTF-32。</p>

返回

  • bool

is_utf16(string $str, bool $check_if_string_is_binary): false|int

检查字符串是否是 UTF-16。

示例: 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>在 <i>json</i> 中编码的值,以适当的 PHP 类型。true、false 和 null(不区分大小写)分别作为 <b>TRUE</b>、<b>FALSE</b> 和 <b>NULL</b> 返回。如果 <i>json</i> 无法解码或编码数据超出递归限制,则返回 <b>NULL</b>。

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

    正在编码的 value。可以是任何类型,但不能是资源。

所有字符串数据必须是 UTF-8 编码。

PHP 实现了 JSON 的超集 - 它还将编码和解码标量类型和 NULL。JSON 标准仅支持这些值在它们嵌套在数组或对象内时。

` - `int $options [可选]

JSON_HEX_QUOTJSON_HEX_TAGJSON_HEX_AMPJSON_HEX_APOSJSON_NUMERIC_CHECKJSON_PRETTY_PRINTJSON_UNESCAPED_SLASHESJSON_FORCE_OBJECTJSON_UNESCAPED_UNICODE 组成的位掩码。这些常量的行为在 JSON 常量页面上有描述。

` - `int $depth [可选]

设置最大深度。必须大于零。

`

返回

  • false|string 成功时返回 JSON 编码的 <strong>string</strong> 或 <strong>FALSE</strong> 失败时

json_loaded(): bool

检查服务器上是否有 JSON。

参数:

返回

  • bool <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

参数

  • string $str <p>输入字符串</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • string|null $lang [可选] <p>设置特殊情况的语言:az、el、lt、tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string 结果字符串

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>
  • 字符串 $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>

返回

  • 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,否则为 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格式。

参数

  • 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..."'

参数

  • string $str <p>要标准化的字符串。</p>

返回

  • string <p>具有规范化字符的字符串,用于Word文档中常用的字符。</p>

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 <p>要标准化的字符串。</p>
  • bool $keep_non_breaking_space [可选] <p>设置为true,以保留非换行空格。</p>
  • bool $keep_bidi_unicode_controls [可选] <p>设置为true,以保留不可打印(对于Web)的双向文本字符。</p>
  • bool $normalize_control_characters [可选] <p>设置为true,将例如行分隔符和段落分隔符转换为"\n",并将行制表符转换为"\t"。</p>

返回

  • string <p>具有规范化空白的字符串。</p>

ord(string $chr, string $encoding): int

计算给定UTF-8编码字符的Unicode码点。

INFO:与UTF8::chr()相反

EXAMPLE: UTF8::ord('☃'); // 0x2603

参数

  • string $chr <p>计算码点的字符。<p/>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • int <p>给定字符的Unicode码点,<br>无效的UTF-8字节序列为0。</p>

parse_str(string $str, array $result, bool $clean_utf8): bool

将字符串解析为数组(到第二个参数中)。

WARNING:与"parse_str()"不同,如果第二个参数未设置,则此方法不会(重新)替换当前作用域中的变量!

EXAMPLE: 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,则返回false。</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字符的数组。

EXAMPLE: 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。

`

返回

  • string[]

rawurldecode(string $str, bool $multi_decode): string

多次解码HTML实体 + 修复urlencoded-win1252-chars。

EXAMPLE: UTF8::rawurldecode('tes%20öäü%20\u00edtest+test'); // 'tes öäü ítest+test'

e.g: '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 <p>解码后的URL,作为一个字符串。</p>

regex_replace(string $str, string $pattern, string $replacement, string $options, string $delimiter): string

用$replacement替换字符串中的所有$pattern出现。

参数

  • string $str <p>输入字符串.</p>
  • string $pattern <p>正则表达式模式。</p>
  • string $replacement <p>要替换的字符串。</p>
  • string $options [可选] <p>要使用的匹配条件。</p>
  • string $delimiter [可选] <p>正则表达式的分隔符。默认:'/'</p>

返回

  • string

remove_bom(string $str): string

从UTF-8 / UTF-16 / UTF-32字符串中移除BOM。

EXAMPLE: 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_invisible_characters(string $str, bool $url_encoded, string $replacement, bool $keep_basic_control_characters): string

从字符串中删除不可见字符。

e.g.: 这可以防止在 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

` - `string $replacement [可选]`

替换字符。

` - `bool $keep_basic_control_characters [可选]`

保留控制字符如 [LRM] 或 [LSEP]。

`

返回

  • string <p>不带不可见字符的字符串。</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
  • string $substring <p>要删除的后缀。</p>
  • string $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string <p>具有 $str 而不带后缀 $substring 的字符串。</p>

replace(string $str, string $search, string $replacement, bool $case_sensitive): string

将 $str 中所有 $search 的出现替换为 $replacement。

参数

  • string $str <p>输入字符串.</p>
  • string $search <p>要搜索的针。</p>
  • string $replacement <p>要替换的字符串。</p>
  • bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认:true</p>

返回

  • string <p>带有替换部分的字符串。</p>

replace_all(string $str, array $search, array|string $replacement, bool $case_sensitive): string

将 $str 中所有 $search 的出现替换为 $replacement。

参数

  • string $str <p>输入字符串.</p>
  • array $search <p>要搜索的元素。</p>
  • array|string $replacement <p>要替换的字符串。</p>
  • bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认:true</p>

返回

  • string <p>带有替换部分的字符串。</p>

replace_diamond_question_mark(string $str, string $replacement_char, bool $process_invalid_utf8_chars): string

用替换替换菱形问号(�)和无效的 UTF-8 字符。

示例:UTF8::replace_diamond_question_mark('中文空白�', ''); // '中文空白'

参数

  • string $str <p>输入字符串</p>
  • string $replacement_char <p>替换字符。</p>
  • bool $process_invalid_utf8_chars

    转换无效的UTF-8字符

返回

  • string

    一个不包含菱形问号(�)的字符串。

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 [可选] <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>
  • string $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_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 [可选] <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

    用于分隔字符串部分的序列。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • string|null $lang [可选] <p>设置特殊情况的语言:az、el、lt、tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string

str_detect_encoding(string $str): false|string

优化 "mb_detect_encoding()" 函数 -> 支持UTF-16和UTF-32。

示例: UTF8::str_detect_encoding('中文空白'); // 'UTF-8' UTF8::str_detect_encoding('Abc'); // 'ASCII'

参数

  • string $str <p>输入字符串.</p>

返回

  • `false|string

    检测到的字符串编码,例如UTF-8或UTF-16BE,
    否则返回false,例如对于二进制或未检测到的编码。

`

str_ends_with(string $haystack, string $needle): bool

检查字符串是否以指定的子串结束。

示例: UTF8::str_ends_with('BeginMiddleΚόσμε', 'Κόσμε'); // true UTF8::str_ends_with('BeginMiddleΚόσμε', 'κόσμε'); // false

参数

  • string $haystack

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • bool

str_ends_with_any(string $str, string[] $substrings): bool

如果字符串以任何给定的子串结束,则返回true,否则返回false。

  • 区分大小写

参数

  • string $str <p>输入字符串.</p>
  • string[] $substrings

    要查找的子串。

返回

  • bool

    是否 $str 以 $substring 结尾。

str_ensure_left(string $str, string $substring): string

确保字符串以 $substring 开头。如果没有,则添加它。

参数

  • string $str <p>输入字符串.</p>
  • string $substring

    如果不存在,则要添加的子串。

返回

  • string

str_ensure_right(string $str, string $substring): string

确保字符串以 $substring 结尾。如果没有,则添加它。

参数

  • string $str <p>输入字符串.</p>
  • string $substring

    如果不存在,则要添加的子串。

返回

  • 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

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • bool

str_iends_with_any(string $str, string[] $substrings): bool

如果字符串以任何给定的子串结束,则返回true,否则返回false。

  • 不区分大小写

参数

  • string $str <p>输入字符串.</p>
  • string[] $substrings

    要查找的子串。

返回

  • bool

    是否 $str 以 $substring 结尾。

str_insert(string $str, string $substring, int $index, string $encoding): string

在提供的 $index 处将 $substring 插入字符串中。

参数

  • string $str <p>输入字符串.</p>
  • string $substring

    要插入的字符串。

  • int $index

    插入子串的索引。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • string

str_ireplace(string|string[] $search, string|string[] $replacement, string|string[] $subject, int $count): string|string[]

不区分大小写且UTF-8安全的str_replace版本。

示例: UTF8::str_ireplace('lIzÆ', 'lise', 'Iñtërnâtiônàlizætiøn'); // 'Iñtërnâtiônàlisetiøn'

参数

  • `string|string[] $search

    每个搜索数组中的替换都在前一次替换的结果上执行。

` - `string|string[] $replacement

替换。

` - `TStrIReplaceSubject $subject

如果主题是数组,则搜索和替换将使用主题的每个条目执行,并且返回值也是数组。

` - `int $count [可选]

在count中返回匹配和替换的针的数量,该count通过引用传递。

`

返回

  • string|string[]

    一个字符串或替换数组。

str_ireplace_beginning(string $str, string $search, string $replacement): string

用 $replacement 替换字符串开头的 $search。

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $search

    要搜索的字符串。

  • 字符串 $replacement

    替换内容。

返回

  • 字符串

    替换后的字符串。

str_ireplace_ending(string $str, string $search, string $replacement): string

用 $replacement 替换字符串末尾的 $search。

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $search

    要搜索的字符串。

  • 字符串 $replacement

    替换内容。

返回

  • 字符串

    替换后的字符串。

str_istarts_with(string $haystack, string $needle): bool

检查字符串是否以指定的子字符串开头(不区分大小写)。

示例: UTF8::str_istarts_with('ΚόσμεMiddleEnd', 'Κόσμε'); // true UTF8::str_istarts_with('ΚόσμεMiddleEnd', 'κόσμε'); // true

参数

  • string $haystack

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • bool

str_istarts_with_any(string $str, array $substrings): bool

如果字符串以 $substrings 中的任何一个开头,则返回 true,否则返回 false。

  • 不区分大小写

参数

  • string $str <p>输入字符串.</p>
  • 数组 $substrings

    要查找的子字符串。

返回

  • bool

    是否 $str 以 $substring 开头。

str_isubstr_after_first_separator(string $str, string $separator, string $encoding): string

获取分隔符首次出现后的子字符串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator

    字符串分隔符。

  • 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

    字符串分隔符。

  • 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

    字符串分隔符。

  • 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

    字符串分隔符。

  • string $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

    要查找的字符串。

  • bool $before_needle [可选]

    默认:false

  • string $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

    要查找的字符串。

  • bool $before_needle [可选]

    默认:false

  • string $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

str_last_char(string $str, int $n, string $encoding): string

返回字符串的最后 $n 个字符。

参数

  • string $str <p>输入字符串.</p>
  • int $n

    从末尾获取的字符数。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • string

str_limit(string $str, int $length, string $str_add_on, string $encoding): string

限制字符串中的字符数。

参数

  • string $str <p>输入字符串.</p>
  • int $length [可选]

    默认:100

  • string $str_add_on [可选]

    默认:…

  • string $encoding [可选] <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 [可选]

    默认:100

  • string $str_add_on [可选]

    默认:…

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • string

str_longest_common_prefix(string $str1, string $str2, string $encoding): string

返回 $str1 和 $str2 之间的最长公共前缀。

参数

  • string $str1

    输入字符串。

  • string $str2

    用于比较的第二个字符串。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • string

str_longest_common_substring(string $str1, string $str2, string $encoding): string

返回 $str1 和 $str2 之间的最长公共子串。

如果有平局,返回第一个出现的那个。

参数

  • string $str1
  • string $str2

    用于比较的第二个字符串。

  • 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

    用于比较的第二个字符串。

  • 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, '', ['@', '.']); // 例如 "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 $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"]

` - `string $encoding [可选]

默认: '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

重复一个字符串。

示例: UTF8::str_repeat("°~\xf0\x90\x28\xbc", 2); // '°ð�(¼°ð�(¼'

参数

  • `string $str

    要重复的字符串。

` - `int $multiplier

输入字符串应重复的次数。

multiplier必须大于或等于0。如果multiplier设置为0,则函数将返回一个空字符串。

`

返回

  • string <p>重复的字符串.</p>

str_replace_beginning(string $str, string $search, string $replacement): string

用 $replacement 替换字符串开头的 $search。

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $search

    要搜索的字符串。

  • 字符串 $replacement

    替换内容。

返回

  • string <p>替换后的字符串.</p>

str_replace_ending(string $str, string $search, string $replacement): string

用 $replacement 替换字符串末尾的 $search。

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $search

    要搜索的字符串。

  • 字符串 $replacement

    替换内容。

返回

  • string <p>替换后的字符串.</p>

str_replace_first(string $search, string $replace, string $subject): string

用"$replace"-term替换第一个"$search"-term。

参数

  • string $search
  • string $replace
  • string $subject

返回

  • string

str_replace_last(string $search, string $replace, string $subject): string

用"$replace"-term替换最后一个"$search"-term。

参数

  • string $search
  • string $replace
  • string $subject

返回

  • string

str_shuffle(string $str, string $encoding): string

打乱字符串中的所有字符。

INFO:使用的是弱的随机算法,不适用于密码学目的

示例: UTF8::str_shuffle('fòô bàř fòô'); // 'àòôřb ffòô '

参数

  • string $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 [可选] <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

根据代码点对所有字符进行排序。

示例: 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 [可选] <p>每个数组元素的字符最大长度</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • bool $try_to_use_mb_functions [可选] <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>要拆分为数组的字符串[]或int[]</p>
  • int $length [optional] <p>数组元素的每个元素的最大字符长度.</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • bool $try_to_use_mb_functions [可选] <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 [optional] <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

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • bool

str_starts_with_any(string $str, array $substrings): bool

如果字符串以 $substrings 中的任何一个开头,则返回 true,否则返回 false。

  • 区分大小写

参数

  • string $str <p>输入字符串.</p>
  • 数组 $substrings

    要查找的子字符串。

返回

  • bool

    是否 $str 以 $substring 开头。

str_substr_after_first_separator(string $str, string $separator, string $encoding): string

获取分隔符首次出现后的子字符串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator

    字符串分隔符。

  • 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

    字符串分隔符。

  • 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

    字符串分隔符。

  • 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

    字符串分隔符。

  • string $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

    要查找的字符串。

  • bool $before_needle [可选]

    默认:false

  • string $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

    要查找的字符串。

  • bool $before_needle [可选]

    默认:false

  • string $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 [optional] <p>不进行大写的单词数组或null。默认:null</p>
  • string $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 [optional] <p>true === 首先修剪输入字符串</p>
  • string|null $word_define_chars [optional] <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 [可选] <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

    定义“单词”时使用的附加字符。

  • 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

    截断字符串所需的长度。

  • string $substring [可选]

    如果可以适应,则附加的子字符串。默认:''

  • string $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

    截断后的字符串。

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

    截断字符串所需的长度。

  • string $substring [可选]

    如果可以适应,则附加的子字符串。默认:''

  • string $encoding [可选] <p>默认: 'UTF-8'</p>
  • bool $ignore_do_not_split_words_for_one_word [可选]

    默认:false

返回

  • string

    截断后的字符串。

str_underscored(string $str): string

返回由下划线分隔的、小写且经过修剪的字符串。

在字符串的前一个字符(如果有)之前插入下划线,并用下划线替换空格和破折号。

参数

  • string $str

返回

  • string

    下划线字符串。

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>
  • string $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

    UpperCamelCase 字符串。

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 => 返回带有单词偏移的单词数组

` - `string $char_list [可选]

包含单词且不作为新单词开始的附加字符。

`

返回

  • int|string[]

    字符串中的单词数量。

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

    第一个字符串。

  • string $str2

    第二个字符串。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • int < 0 如果 str1 小于 str2;
    <strong>> 0 如果 str1 大于 str2;
    <strong>0 如果它们相等

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

    第一个字符串。

  • string $str2

    第二个字符串。

返回

  • 如果 str1 小于 str2,则返回 <strong>&lt; 0</strong><br>如果 str1 大于 str2,则返回 <strong>&gt; 0</strong><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("κόσμε\xa0\xa1"); // 'κόσμε'

参数

  • `string $str

    输入字符串。

` - `string|null $allowable_tags [可选]

您可以使用可选的第二个参数来指定不应删除的标签。

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>从其中获取 needle 首次出现位置的字符串.</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 字符串中的第一个出现的 <strong>(int)</strong> 数字位置,或 <strong>false</strong> 如果 needle 未找到

stripos_in_byte(string $haystack, string $needle, int $offset): false|int

在字符串中查找子字符串首次出现的位置,不区分大小写。

参数

  • `string $haystack

    正在检查的字符串。

` - `string $needle

从 haystack 开始计算的偏移量。

` - `int $offset [可选]

搜索偏移量。如果没有指定,则使用 0。

`

返回

  • false|int <p>needle 在 haystack 字符串中首次出现的位置。如果 needle 未找到,则返回 false.</p>

stristr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string

返回从 needle 首次出现位置开始,包括 needle 到字符串末尾的所有内容。

示例: $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,则返回在第一次出现针之前(不包括针)的haystack部分。

` - `string $encoding [可选]

为例如"mb_"函数设置字符集

` - `bool $clean_utf8 [可选]

从字符串中删除非 UTF-8 字符。

`

返回

  • false|string <p>子字符串,或者如果找不到针,则为<strong>false</strong>。</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 的字符数量(一个多字节字符计为 +1)。


如果 e.g. 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

    第一个字符串。

  • string $str2

    第二个字符串。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • 如果 str1 小于 str2,则返回 <strong>&lt; 0</strong><br>如果 str1 大于 str2,则返回 <strong>&gt; 0</strong><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

    第一个字符串。

  • string $str2

    第二个字符串。

返回

  • int <strong>&lt; 0</strong> 如果 str1 小于 str2; <br> <strong>&gt; 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

    第一个字符串。

  • string $str2

    第二个字符串。

  • int $len <p>用于比较的字符串的长度。</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • int <strong>&lt; 0</strong> 如果 <i>str1</i> 小于 <i>str2</i>; <br> <strong>&gt; 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

    第一个字符串。

  • string $str2

    第二个字符串。

  • int $len <p>用于比较的字符数。</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • int <strong>&lt; 0</strong> 如果 <i>str1</i> 小于 <i>str2</i>; <br> <strong>&gt; 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() 来获取字节长度。

EXAMPLE: UTF8::strpos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 8

参数

  • string $haystack <p>从其中获取 needle 首次出现位置的字符串.</p>
  • int|string $needle <p>要在搜索范围内查找的字符串。<br>或者作为一个整数的码点。</p>
  • int $offset [可选] <p>搜索偏移量。如果没有指定,则使用 0。</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>

返回

  • false|int <strong>(int)</strong> 剩余字符串中第一次出现 needle 的数字位置。<br>如果未找到 needle,则返回 false。

strpos_in_byte(string $haystack, string $needle, int $offset): false|int

在字符串中查找子字符串第一次出现的位置。

参数

  • `string $haystack

    正在检查的字符串。

` - `string $needle

从 haystack 开始计算的偏移量。

` - `int $offset [可选]

搜索偏移量。如果没有指定,则使用 0。

`

返回

  • false|int <p>needle 在 haystack 字符串中首次出现的位置。如果 needle 未找到,则返回 false.</p>

strrchr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string

在另一个字符串中查找字符的最后出现位置。

EXAMPLE: UTF8::strrchr('κὁσμεκὁσμε-äöü', 'κὁσμε'); // 'κὁσμε-äöü'

参数

  • string $haystack <p>从该字符串中获取 needle 的最后出现位置的字符串。</p>
  • string $needle <p>在 haystack 中查找的字符串。</p>
  • `bool $before_needle [可选]

    确定该函数返回 haystack 的哪个部分。如果设置为 true,它将返回从开始到 needle 最后出现位置的所有 haystack。如果设置为 false,它将返回从 needle 最后出现位置到结尾的所有 haystack。

` - `string $encoding [可选]

为例如"mb_"函数设置字符集

` - `bool $clean_utf8 [可选]

从字符串中删除非 UTF-8 字符。

`

返回

  • false|string <p>剩余的 haystack 部分或如果未找到 needle,则返回 false。</p>

strrev(string $str, string $encoding): string

反转字符串中的字符顺序。

EXAMPLE: 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

在另一个字符串中查找字符的最后出现位置,不区分大小写。

EXAMPLE: UTF8::strrichr('Aκὁσμεκὁσμε-äöü', 'aκὁσμε'); // 'Aκὁσμεκὁσμε-äöü'

参数

  • string $haystack <p>从该字符串中获取 needle 的最后出现位置的字符串。</p>
  • string $needle <p>要查找的字符串.</p>
  • `bool $before_needle [可选]

    确定该函数返回 haystack 的哪个部分。如果设置为 true,它将返回从开始到 needle 最后出现位置的所有 haystack。如果设置为 false,它将返回从 needle 最后出现位置到结尾的所有 haystack。

` - `string $encoding [可选]

为例如"mb_"函数设置字符集

` - `bool $clean_utf8 [可选]

从字符串中删除非 UTF-8 字符。

`

返回

  • false|string <p>剩余的 haystack 部分或如果未找到 needle,则返回 false。</p>

strripos(string $haystack, int|string $needle, int $offset, string $encoding, bool $clean_utf8): false|int

在字符串中查找子字符串最后一次出现的位置,不区分大小写。

EXAMPLE: 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 <strong>(int)</strong> 剩余字符串中 needle 最后一次出现的数字位置。<br>如果未找到 needle,则返回 false。

strripos_in_byte(string $haystack, string $needle, int $offset): false|int

在不区分大小写的情况下查找字符串在另一个字符串中的最后出现位置。

参数

  • `string $haystack

    要获取 needle 最后出现位置的字符串。

` - `string $needle

在 haystack 中查找的字符串。

` - `int $offset [可选]

在 haystack 中开始搜索的位置。

`

返回

  • false|int <p>返回 needle 在 haystack 中最后一次出现的数字位置,如果未找到 needle,则返回 false。</p>

strrpos(string $haystack, int|string $needle, int $offset, string $encoding, bool $clean_utf8): false|int

在字符串中查找子字符串最后一次出现的位置。

EXAMPLE: UTF8::strrpos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 13

参数

  • string $haystack <p>检查字符串,以查找 needle 的最后出现位置。</p>
  • int|string $needle <p>要在搜索范围内查找的字符串。<br>或者作为一个整数的码点。</p>
  • `int $offset [可选]

    可以指定从字符串中搜索任意数量的字符。负值将在字符串末尾之前任意位置停止搜索。

` - `string $encoding [可选]

设置字符集。

` - `bool $clean_utf8 [可选]

从字符串中删除非 UTF-8 字符。

`

返回

  • false|int <strong>(int)</strong> 剩余字符串中 needle 最后一次出现的数字位置。<br>如果未找到 needle,则返回 false。

strrpos_in_byte(string $haystack, string $needle, int $offset): false|int

在字符串中查找子字符串最后一次出现的位置。

参数

  • `string $haystack

    正在检查的字符串,用于查找针的最后一个出现。

` - `string $needle

在 haystack 中查找的字符串。

` - `int $offset [可选]

可以指定从字符串中搜索任意数量的字符。负值将在字符串末尾之前任意位置停止搜索。

`

返回

  • false|int <p>针在haystack字符串中最后一次出现的数字位置。如果找不到针,则返回false.</p>

strspn(string $str, string $mask, int $offset, int|null $length, string $encoding): false|int

查找由给定掩码中包含的字符组成的字符串初始段的长度。

示例: UTF8::strspn('iñtërnâtiônàlizætiøn', 'itñ'); // '3'

参数

  • string $str <p>输入字符串.</p>
  • string $mask <p>字符掩码</p>
  • int $offset [可选]
  • int|null $length [可选]
  • 字符串 $encoding [可选] <p>设置字符集。</p>

返回

  • false|int

strstr(string $haystack, string $needle, bool $before_needle, string $encoding, bool $clean_utf8): false|string

返回从针的第一个出现到最后一个出现之间的haystack字符串部分。

示例: $str = 'iñtërnâtiônàlizætiøn'; $search = 'nât';

UTF8::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() 返回针之前的部分(不包括针)。

` - `string $encoding [可选]

为例如"mb_"函数设置字符集

` - `bool $clean_utf8 [可选]

从字符串中删除非 UTF-8 字符。

`

返回

  • false|string <p>子字符串,或者如果找不到针,则为<strong>false</strong>。</p>

strstr_in_byte(string $haystack, string $needle, bool $before_needle): false|string

在另一个字符串中查找字符串的第一个出现。

参数

  • `string $haystack

    获取针的第一个出现的字符串。

` - `string $needle

在 haystack 中查找的字符串。

` - `bool $before_needle [可选]

确定此函数返回的haystack部分。如果设置为true,它从开始到针的第一个出现返回整个haystack。如果设置为false,它从针的第一个出现到结束返回整个haystack。

`

返回

  • false|string <p>haystack的一部分,如果找不到针则返回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]

` - `bool $clean_utf8 [可选]

从字符串中删除非 UTF-8 字符。

` - `string $encoding [可选]

设置字符集。

` - `string|null $lang [可选]

设置语言以处理特殊情况:az, el, lt, tr

` - `bool $lower [可选]

使用小写字符串,否则使用大写字符串。注意:对于某些语言,大写可能更好...

`

返回

  • string

strtolower(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string

将字符串转换为小写。

示例: UTF8::strtolower('DÉJÀ Σσς Iıİi'); // 'déjà σσς iıii'

参数

  • string $str <p>要转换为小写的字符串.</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • string|null $lang [可选] <p>设置特殊情况的语言:az、el、lt、tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string <p>将所有字母字符转换为小写的字符串.</p>

strtoupper(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string

将字符串转换为大写。

示例: UTF8::strtoupper('Déjà Σσς Iıİi'); // 'DÉJÀ ΣΣΣ IIİI'

参数

  • string $str <p>正在转换为大写的字符串.</p>
  • 字符串 $encoding [可选] <p>设置字符集。</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • string|null $lang [可选] <p>设置特殊情况的语言:az、el、lt、tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string <p>将所有字母字符转换为大写的字符串.</p>

strtr(string $str, string|string[] $from, string|string[] $to): string

翻译字符或替换子字符串。

示例: $array = [ 'Hello' => '○●◎', '中文空白' => 'earth', ]; UTF8::strtr('Hello 中文空白', $array); // '○●◎ earth'

参数

  • string $str <p>待翻译的字符串.</p>
  • string|string[] $from <p>替换的字符串来源.</p>
  • string|string[] $to [optional] <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 [optional] <p>返回字符串的最大长度.</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>

返回

  • false|string <p>由offset和length参数指定的str的部分。</p>

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 [optional] <p>比较的起始位置。如果为负数,则从字符串的末尾开始计数.</p>
  • int|null $length [optional] <p>比较的长度。默认值是str的长度与main_str的长度减去偏移量中的较大值。</p>
  • bool $case_insensitivity [optional] <p>如果case_insensitivity为TRUE,比较不区分大小写。</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • int < 0 如果 str1 小于 str2;
    <strong>> 0 如果 str1 大于 str2;
    <strong>0 如果它们相等

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

    要搜索的字符串。

  • string $needle

    要搜索的子串。

  • int $offset [optional] <p>开始计数的偏移量.</p>
  • `int|null $length [optional]

    指定偏移量后要搜索的子字符串的最大长度。如果偏移量加上长度大于haystack长度,则输出警告。

` - `string $encoding [可选]

为例如"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

    正在检查的字符串。

` - `string $needle

要查找的字符串。

` - `int $offset [可选]

开始计数的偏移量

` - `int|null $length [optional]

指定偏移量后要搜索的子字符串的最大长度。如果偏移量加上长度大于haystack长度,则输出警告。

`

返回

  • false|int <p>针串在堆栈串中出现的次数。</p>

substr_count_simple(string $str, string $substring, bool $case_sensitive, string $encoding): int

返回给定字符串中$substring出现的次数。

默认情况下,比较是区分大小写的,但可以将$case_sensitive设置为false以使其不区分大小写。

参数

  • string $str <p>输入字符串.</p>
  • string $substring <p>要搜索的子字符串.</p>
  • bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认:true</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • int

substr_ileft(string $haystack, string $needle): string

从字符串($haystack)的开始移除前缀($needle),不区分大小写。

示例: UTF8::substr_ileft('ΚόσμεMiddleEnd', 'Κόσμε'); // 'MiddleEnd' UTF8::substr_ileft('ΚόσμεMiddleEnd', 'κόσμε'); // 'MiddleEnd'

参数

  • string $haystack

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • 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 [optional] <p>返回字符串的最大长度.</p>

返回

  • false|string <p>由offset和length参数指定的str的部分。</p>

substr_iright(string $haystack, string $needle): string

从字符串($haystack)的末尾移除后缀($needle),不区分大小写。

示例: UTF8::substr_iright('BeginMiddleΚόσμε', 'Κόσμε'); // 'BeginMiddle' UTF8::substr_iright('BeginMiddleΚόσμε', 'κόσμε'); // 'BeginMiddle'

参数

  • string $haystack

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • string <p>返回子字符串。<p>

substr_left(string $haystack, string $needle): string

从字符串($haystack)的开始移除前缀($needle)。

示例: UTF8::substr_left('ΚόσμεMiddleEnd', 'Κόσμε'); // 'MiddleEnd' UTF8::substr_left('ΚόσμεMiddleEnd', 'κόσμε'); // 'ΚόσμεMiddleEnd'

参数

  • string $haystack

    要搜索的字符串。

  • string $needle

    要搜索的子串。

返回

  • 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个偏移量开始。

    如果起始位置是负数,则替换将从字符串末尾的第start个字符开始。

` - `int|int[]|null $length [可选]

如果给定并且是正数,它表示要替换的字符串部分的长度。如果是负数,则表示从字符串末尾开始的字符数,用于停止替换。如果没有给定,则默认为strlen( string ); 即在字符串末尾结束替换。当然,如果长度为零,则此函数将具有在给定起始偏移量处将替换插入字符串的效果。

` - `string $encoding [可选]

为例如"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

    要搜索的字符串。

  • string $needle

    要搜索的子串。

  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>

返回

  • string <p>返回子字符串。</p>

swapCase(string $str, string $encoding, bool $clean_utf8): string

返回字符串的转换大小写版本。

示例:UTF8::swapCase('déJÀ σσς iıII'); // 'DÉjà ΣΣΣ IIii'

参数

  • string $str <p>输入字符串.</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>

返回

  • string <p>每个字符的大小写已转换。</p>

symfony_polyfill_used(): bool

检查是否使用了symfony-polyfills。

参数:

返回

  • bool <p><strong>true</strong> 如果使用,<strong>false</strong> 否则</p>

tabs_to_spaces(string $str, int $tab_length): string

参数

  • string $str
  • int $tab_length

返回

  • string

titlecase(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string

将字符串中每个单词的第一个字符转换为大写,其他字符转换为小写。

参数

  • string $str <p>输入字符串.</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • string|null $lang [可选] <p>设置特殊情况的语言:az、el、lt、tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string <p>所有字符均为标题化的字符串。</p>

to_ascii(string $str, string $unknown, bool $strict): string

将字符串转换为ASCII。

示例:UTF8::to_ascii('déjà σσς iıii'); // 'deja sss iiii'

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $unknown [可选] <p>当字符未知时使用的字符。(默认为 ?)</p>
  • 布尔型 $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
  • 布尔型 $use_transliterate 默认不进行转写或转换等操作 - 不安全的字符将被替换为连字符。
  • 字符串 $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>
  • 布尔型 $decode_html_entity_to_utf8 <p>如果需要解码 html-entities,则设置为 true</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'

参数

  • string $str <p>任何字符串</p>
  • 布尔型 $decode_html_entity_to_utf8 <p>如果需要解码 html-entities,则设置为 true</p>

返回

  • string <p>UTF-8 编码的字符串</p>

trim(string $str, string|null $chars): string

从 UTF-8 字符串的开始和结束处去除空白或其他字符。

信息:这比 "trim()" 慢。

如果我们使用 <= 7-Bit 在字符串 / chars 中,则我们可以使用原始函数,但如果检查 ASCII (7-Bit) 消耗更多时间,则可以在这里节省。

示例: UTF8::trim(' -ABC-中文空白- '); // '-ABC-中文空白-'

参数

  • string $str <p>要修剪的字符串。</p>
  • string|null $chars [可选] <p>要去除的字符(可选)</p>

返回

  • string <p>去除后的字符串</p>

ucfirst(string $str, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string

将字符串的第一个字符转换为大写。

示例: UTF8::ucfirst('ñtërnâtiônàlizætiøn foo'); // 'Ñtërnâtiônàlizætiøn foo'

参数

  • string $str <p>输入字符串.</p>
  • string $encoding [可选] <p>设置字符集,例如“mb_”函数的字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>
  • string|null $lang [可选] <p>设置特殊情况的语言:az、el、lt、tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string <p>结果字符串,其中字符已转换为大写</p>

ucwords(string $str, string[] $exceptions, string $char_list, string $encoding, bool $clean_utf8): string

将字符串中的所有单词转换为大写。

示例: UTF8::ucwords('iñt ërn âTi ônà liz æti øn'); // 'Iñt Ërn ÂTi Ônà Liz Æti Øn'

参数

  • string $str <p>输入字符串.</p>
  • string[] $exceptions [可选] <p>排除某些单词</p>
  • string $char_list [可选] <p>包含在单词中但不以新单词开始的附加字符</p>
  • 字符串 $encoding [可选] <p>设置字符集。</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非 UTF-8 字符.</p>

返回

  • string

urldecode(string $str, bool $multi_decode): string

多次解码HTML实体 + 修复urlencoded-win1252-chars。

示例: UTF8::urldecode('tes%20öäü%20\u00edtest+test'); // 'tes öäü ítest test'

例如: 'test+test' => 'test test' 'Düsseldorf' => 'Düsseldorf' 'D%FCsseldorf' => 'Düsseldorf' 'Düsseldorf' => 'Düsseldorf' 'D%26%23xFC%3Bsseldorf' => 'Düsseldorf' 'Düsseldorf' => 'Düsseldorf' 'D%C3%BCsseldorf' => 'Düsseldorf' 'D%C3%83%C2%BCsseldorf' => 'Düsseldorf' 'D%25C3%2583%25C2%25BCsseldorf' => 'Düsseldorf'

参数

  • 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[]

返回一个包含所有 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 $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ñ

rn
ât


li

ti
øn'

参数

  • string $str <p>输入字符串.</p>
  • int $width [optional] <p>列宽.</p>
  • string $break [optional] <p>使用可选的 break 参数断行.</p>
  • `bool $cut [optional]

    如果 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 $width [optional] <p>列宽.</p>
  • string $break [optional] <p>使用可选的 break 参数断行.</p>
  • `bool $cut [optional]

    如果 cut 设置为 true,则字符串总是在指定宽度处或之前进行包装。因此,如果有一个比给定宽度大的单词,它将被分割。

` - `bool $add_final_break [optional]

如果此标志为 true,则方法将在结果字符串末尾添加一个 $break。

` - `string|null $delimiter [optional]

您可以更改默认行为,其中我们通过换行符拆分字符串。

`

返回

  • string

ws(): string[]

返回一个 Unicode 空白字符数组。

参数:

返回

  • string[] <p>包含数字代码点作为键和空白字符作为值的数组.</p>

单元测试

  1. Composer 是运行测试的先决条件。
composer install
  1. 可以通过从根目录运行以下命令来执行测试
./vendor/bin/phpunit

支持

有关支持和支持,请访问 GitHub | 问题 | PayPal | Patreon

有关状态更新和发布公告,请访问 发布 | Twitter | Patreon

如需专业支持,请联系

感谢

  • 感谢 GitHub(微软)为我们提供代码托管和良好的基础设施,包括问题管理等。
  • 感谢 IntelliJ,因为他们为PHP提供了最好的IDE,并且为我提供了PhpStorm的开源许可!
  • 感谢 Travis CI,它是最棒、最简单的持续集成工具!
  • 感谢 StyleCI 提供简单但强大的代码风格检查。
  • 感谢 PHPStanPsalm 提供真正出色的静态分析工具,并在代码中发现了错误!

许可和版权

"Portable UTF8" 是免费软件;您可以在(根据您的选择)以下条款下重新分发和/或修改它:

Unicode 处理需要在长期内进行繁琐的工作来实现和维护。因此,受这两项许可证许可的单元测试、错误报告、评论或补丁的贡献都非常受欢迎。

FOSSA Status