tingv/portable-utf8

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

5.4.50 2020-11-12 00:17 UTC

This package is auto-updated.

Last update: 2024-09-18 09:00:30 UTC


README

Build Status Build status FOSSA Status Coverage Status 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扩展的情况下在您的服务器上运行。

便携式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”和其他的问题在于,您通常无法确保服务器上存在特定的一个。如果您依赖其中一个,那么您的应用程序就不再具有可移植性。对于必须在不同服务器上以不同配置运行的开源应用程序来说,这个问题更加严重。考虑到这些因素,我决定编写一个库

要求和推荐

  • 运行此库不需要任何扩展。便携式UTF-8仅需要PCRE库,该库自PHP 4.2.0以来默认可用,并且自PHP 5.3.0以来无法禁用。PCRE中的"\u"修饰符支持UTF-8处理不是必需的。
  • PHP 5.3是最低要求,所有后续版本都可以与便携式UTF-8兼容。
  • 自Portable UTF-8 4.0版本以来,PHP 7.0是最低要求,否则composer将安装旧版本
  • PHP 8.0支持也可用,并将适应原生函数的行为。
  • 为了加快字符串处理,建议您在服务器上安装“mbstring”或“iconv”,以及PCRE库的最新版本。
  • 尽管便携式UTF-8使用方便;从本地API迁移到便携式UTF-8可能对每个人来说都不那么直接。强烈建议在了解原因和后果之前,不要更新脚本以包含便携式UTF-8或替换或更改任何内容。大多数情况下,一些本地函数可能就是您所需要的。
  • 此外,还提供了“mbstring”、“iconv”和“intl”的适配器,因此您也可以在共享网站空间中使用它。

信息

从版本5.4.26开始,此库不再通过“bootstrap.php”强制使用“UTF-8”。如果您需要启用此行为,可以在包含自动加载器之前定义“PORTABLE_UTF8__ENABLE_AUTO_FILTER”。

define('PORTABLE_UTF8__ENABLE_AUTO_FILTER', 1);

在版本5.4.26之前,此行为默认启用,您可以通过“PORTABLE_UTF8__DISABLE_AUTO_FILTER”来禁用它,但代码在通过header('Location ...重定向时可能存在潜在的通过注入代码的安全漏洞。这就是我决定在错误修复版本中添加此BC的原因,以便使用当前版本的每个人都能接收到安全修复。

用法

示例 1:UTF8::cleanup()

  echo UTF8::cleanup('�Düsseldorf�');
  
  // will output:
  // Düsseldorf

示例 2:UTF8::strlen()

  $string = 'string <strong>with utf-8 chars åèä</strong> - doo-bee doo-bee dooh';

  echo strlen($string) . "\n<br />";
  echo UTF8::strlen($string) . "\n<br />";

  // will output:
  // 70
  // 67

  $string_test1 = strip_tags($string);
  $string_test2 = UTF8::strip_tags($string);

  echo strlen($string_test1) . "\n<br />";
  echo UTF8::strlen($string_test2) . "\n<br />";

  // will output:
  // 53
  // 50

示例 3:UTF8::fix_utf8()

  echo UTF8::fix_utf8('Düsseldorf');
  echo UTF8::fix_utf8('ä');
  
  // will output:
  // Düsseldorf
  // ä

便携式UTF-8 | API

"UTF8"类的API被编写为小静态方法,将匹配默认PHP-API。

类方法

access(string $str, int $pos, string $encoding): string

返回指定位置的字符:$str[1]如功能。

示例: UTF8::access('fòô', 1); // 'ò'

参数

  • string $str <p>UTF-8字符串.</p>
  • int $pos <p>要返回的字符的位置.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>单个多字节字符.</p>

add_bom_to_string(string $str): string

将UTF-8 BOM字符添加到字符串中,并返回整个字符串。

信息:如果BOM已经存在,则返回输入字符串。

示例: UTF8::add_bom_to_string('fòô'); // "\xEF\xBB\xBF" . 'fòô'

参数

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

返回

  • string <p>包含BOM的输出字符串.</p>

array_change_key_case(array $array, int $case, string $encoding): string[]

更改数组中的所有键。

参数

  • array<string, mixed> $array <p>要处理的数组</p>
  • int $case [optional] <p>要么是 <strong>CASE_UPPER</strong><br> 要么是 <strong>CASE_LOWER</strong> (默认)</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string[] <p>键被转换为小写或大写的数组.</p>

between(string $str, string $start, string $end, int $offset, string $encoding): string

如果找到,则返回介于$start和$end之间的子字符串,否则返回空字符串。可以提供一个可选的偏移量,从该偏移量开始搜索起始字符串。

参数

  • string $str
  • string $start <p>分隔符标记子字符串的开始位置.</p>
  • string $end <p>分隔符标记子字符串的结束位置.</p>
  • int $offset [optional] <p>开始搜索的索引。默认:0</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

binary_to_str(string $bin): string

将二进制转换为字符串。

信息:与UTF8::str_to_binary()相反

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

参数

  • string $bin 1|0

返回

  • string

bom(): string

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

信息:查看UTF8::$bom,例如UTF-16和UTF-32 BOM值

示例: UTF8::bom(); // "\xEF\xBB\xBF"

参数:

返回

  • string <p>UTF-8 字节顺序标记.</p>

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

参数

  • callable $callback
  • string $str

返回

  • string[]

char_at(string $str, int $index, string $encoding): string

返回指定索引处的字符,索引从0开始。

参数

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

返回

  • string <p>指定索引处的字符.</p>

chars(string $str): string[]

返回字符串中所有字符的数组。

参数

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

返回

  • string[] <p>字符数组.</p>

checkForSupport(): true|null

此方法将自动检测服务器环境对UTF-8的支持。

参数:

返回

  • true|null

chr(int $code_point, string $encoding): string|null

根据给定的码点生成UTF-8编码的字符。

INFO: 与UTF8::ord()相反

示例: UTF8::chr(0x2603); // '☃'

参数

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

返回

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

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

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

示例: UTF8::chr_map([UTF8::class, 'strtolower'], 'Κόσμε'); // ['κ','ό', 'σ', 'μ', 'ε']

参数

  • callable $callback <p>回调函数.</p>
  • string $str <p>要运行回调的UTF-8字符串.</p>

返回

  • string[] <p>回调的结果,作为数组.</p>

chr_size_list(string $str): int[]

生成一个数组,包含Unicode字符串中每个字符的字节长度。

1 byte => U+0000 - U+007F 2 byte => U+0080 - U+07FF 3 byte => U+0800 - U+FFFF 4 byte => U+10000 - U+10FFFF

示例: UTF8::chr_size_list('中文空白-test'); // [3, 3, 3, 3, 1, 1, 1, 1, 1]

参数

  • string $str <p>原始的Unicode字符串.</p>

返回

  • int[] <p>每个字符的字节长度数组.</p>

chr_to_decimal(string $char): int

获取特定字符的十进制代码表示。

INFO: 与UTF8::decimal_to_chr()相反

示例: UTF8::chr_to_decimal('§'); // 0xa7

参数

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

返回

  • int

chr_to_hex(int|string $char, string $prefix): string

获取UTF-8编码字符的十六进制码点(U+xxxx)。

示例: UTF8::chr_to_hex('§'); // U+00a7

参数

  • int|string $char <p>输入字符</p>
  • string $prefix [optional]

返回

  • string <p>编码为U+xxxx的码点.</p>

chunk_split(string $body, int $chunk_length, string $end): string

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

示例: UTF8::chunk_split('ABC-ÖÄÜ-中文空白-κόσμε', 3); // "ABC\r\n-ÖÄ\r\nÜ-中\r\n文空白\r\n-κό\r\nσμε"

参数

  • string $body <p>要分割的原始字符串.</p>
  • int $chunk_length [optional] <p>每个块的最大字符长度.</p>
  • string $end [optional] <p>在每个块末尾插入的字符(字符串).</p>

返回

  • string <p>分割后的字符串.</p>

clean(string $str, bool $remove_bom, bool $normalize_whitespace, bool $normalize_msword, bool $keep_non_breaking_space, bool $replace_diamond_question_mark, bool $remove_invisible_characters, bool $remove_invisible_characters_url_encoded): string

接受一个字符串,并从中删除所有非UTF-8字符(如有必要)。

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

参数

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

    设置为true,如果不想删除不可见的URL编码字符,例如:"%0B"</p>
    警告:可能包含错误阳性,例如 aa%0Baa -> aaaa。

`

返回

  • string <p>一个清理后的UTF-8编码字符串。</p>

cleanup(string $str): string

清理字符串,并最终仅显示可打印的UTF-8字符 + 修复UTF-8编码。

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

参数

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

返回

  • string

codepoints(string|string[] $arg, bool $use_u_style): int[]|string[]

接受一个字符串或字符串数组,并返回一个Unicode码点数组。

INFO:与UTF8::string()相反

示例: UTF8::codepoints('κöñ'); // array(954, 246, 241) // ... OR ... UTF8::codepoints('κöñ', true); // array('U+03ba', 'U+00f6', 'U+00f1')

参数

  • string|string[] $arg <p>UTF-8编码的字符串或字符串数组。</p>
  • bool $use_u_style <p>如果为真,将返回U+xxxx格式的码点,默认码点将以整数形式返回。</p>

返回

  • `int[]|string[]

    码点数组
    对于$u_style === false的int[]
    对于$u_style === true的string[]

`

collapse_whitespace(string $str): string

去除字符串的前后空白,并替换连续的空白字符为一个空格。这包括制表符、换行符,以及多字节空白符,如细空格和汉字空格。

参数

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

返回

  • string <p>经过修剪和压缩空白的字符串。</p>

count_chars(string $str, bool $clean_utf8, bool $try_to_use_mb_functions): int[]

返回字符串中使用的字符数量。

示例: UTF8::count_chars('κaκbκc'); // array('κ' => 3, 'a' => 1, 'b' => 1, 'c' => 1)

参数

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

返回

  • int[] <p>一个以字符为键、其计数为值的关联数组。</p>

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

创建一个有效的CSS标识符,例如用于"类"或"id"属性。

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

copy&past from https://github.com/drupal/core/blob/8.8.x/lib/Drupal/Component/Utility/Html.php#L95

参数

  • 字符串 $str <p>INFO: 如果没有提供标识符,例如 " " 或 "",我们将自动创建一个唯一的字符串</p>
  • 数组 $filter
  • 布尔 $strip_tags
  • 布尔 $strtolower

返回

  • string

css_stripe_media_queries(string $str): string

移除 css 媒体查询。

参数

  • string $str

返回

  • string

ctype_loaded(): 布尔

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

参数:

返回

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

decimal_to_chr(int|string $int): string

将 int 值转换为 UTF-8 字符。

INFO:与UTF8::string()相反

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

参数

  • int|数字字符串 $int

返回

  • string

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

解码 MIME 头字段

参数

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

返回

  • false|string <p>成功解码的 MIME 字段,或者在解码过程中发生错误时为 false</p>

emoji_decode(string $str, bool $use_reversible_string_mappings): string

解码由 "UTF8::emoji_encode()" 编码的字符串。

INFO: 与 UTF8::emoji_encode() 相反

示例: UTF8::emoji_decode('foo CHARACTER_OGRE', false); // 'foo 👹' // UTF8::emoji_decode('foo -PORTABLE_UTF8-308095726-627590803-8FTU_ELBATROP-', true); // 'foo 👹'

参数

  • string $str <p>输入字符串.</p>
  • 布尔 $use_reversible_string_mappings [可选] <p> 当 <b>TRUE</b> 时,我们在 "emoji_encode" 和 "emoji_decode" 之间使用可逆字符串映射。</p>

返回

  • string

emoji_encode(string $str, bool $use_reversible_string_mappings): string

将包含 emoji 字符的字符串编码为非 emoji 字符串。

INFO: 与 UTF8::emoji_decode() 相反

示例: UTF8::emoji_encode('foo 👹', false)); // 'foo CHARACTER_OGRE' // UTF8::emoji_encode('foo 👹', true)); // 'foo -PORTABLE_UTF8-308095726-627590803-8FTU_ELBATROP-'

参数

  • 字符串 $str <p>输入字符串</p>
  • 布尔 $use_reversible_string_mappings [可选] <p> 当 <b>TRUE</b> 时,我们在 "emoji_encode" 和 "emoji_decode" 之间使用可逆字符串映射。</p>

返回

  • string

emoji_from_country_code(string $country_code_iso_3166_1): string

将任何两位字母的国家代码(ISO 3166-1)转换为相应的 Emoji。

参数

  • 字符串 $country_code_iso_3166_1 <p>例如:DE</p>

返回

  • 字符串 <p>错误时为空字符串的 Emoji 或空字符串。</p>

encode(string $to_encoding, string $str, bool $auto_detect_the_from_encoding, string $from_encoding): string

使用新的字符集编码对字符串进行编码。

INFO:此函数还将尝试修复损坏的/双重编码,因此您也可以在 UTF-8 字符串上调用此函数,而不会破坏字符串。

示例: UTF8::encode('ISO-8859-1', '-ABC-中文空白-'); // '-ABC-????-' // UTF8::encode('UTF-8', '-ABC-中文空白-'); // '-ABC-中文空白-' // UTF8::encode('HTML', '-ABC-中文空白-'); // '-ABC-中文空白-' // UTF8::encode('BASE64', '-ABC-中文空白-'); // 'LUFCQy3kuK3mlofnqbrnmb0t'

参数

  • 字符串 $to_encoding <p>例如:'UTF-16', 'UTF-8', 'ISO-8859-1' 等。</p>
  • 字符串 $str <p>输入字符串</p>
  • 布尔 $auto_detect_the_from_encoding [可选] <p>强制新的编码(我们尝试修复 UTF-8 的损坏/双重编码)<br> 否则,我们自动检测当前的字符串编码</p>
  • 字符串 $from_encoding [可选] <p>例如:'UTF-16', 'UTF-8', 'ISO-8859-1' 等。<br> 空字符串将触发自动检测。</p>

返回

  • string

encode_mimeheader(string $str, string $from_charset, string $to_charset, string $transfer_encoding, string $linefeed, int $indent): false|string

参数

  • string $str
  • 字符串 $from_charset [可选] <p>设置输入字符集。</p>
  • 字符串 $to_charset [可选] <p>设置输出字符集。</p>
  • 字符串 $transfer_encoding [可选] <p>设置传输编码。</p>
  • string $linefeed [可选] <p>设置使用的换行符。</p>
  • int $indent [可选] <p>设置最大缩进长度。</p>

返回

  • false|string <p>成功编码的MIME字段,或者在编码过程中发生错误时为false。</p>

extract_text(string $str, string $search, int|null $length, string $replacer_for_skipped_text, string $encoding): string

从句子中创建一个摘录,如果找到了搜索字符串,则尝试在输出中居中显示。

参数

  • string $str <p>输入字符串.</p>
  • string $search <p>要搜索的字符串。</p>
  • int|null $length [可选] <p>默认:null === text->length / 2</p>
  • string $replacer_for_skipped_text [可选] <p>默认:…</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

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

EXAMPLE: UTF8::file_get_contents('utf16le.txt'); // ...

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

参数

  • `string $filename

    要读取的文件名。

` - `bool $use_include_path [可选]

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

` - `resource|null $context [可选]

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

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

开始读取的偏移量。

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

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

` - `int $timeout

超时时间(秒)。

` - `bool $convert_to_utf8 WARNING!!!

可能您不能为某些文件使用此选项,因为这些文件使用了非默认的UTF-8字符。像图像或PDF这样的二进制文件将不会转换。

` - `string $from_encoding [可选]

例如,'UTF-16','UTF-8','ISO-8859-1'等。
空字符串将自动检测。

`

返回

  • false|string <p>函数返回读取的数据作为字符串,或者在失败时返回<b>false</b>。</p>

file_has_bom(string $file_path): bool

检查文件是否以BOM(字节顺序标记)字符开头。

EXAMPLE: UTF8::file_has_bom('utf8_with_bom.txt'); // true

参数

  • string $file_path <p>有效文件的路径。</p>

返回

  • bool <p><strong>true</strong> 如果文件在开头有BOM,否则为 <strong>false</strong>。</p>

filter(array|object|string $var, int $normalization_form, string $leading_combining): mixed

正规化为UTF-8 NFC,在需要时从WINDOWS-1252转换。

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

参数

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

返回

  • mixed

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

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

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

EXAMPLE: // _GET['foo'] = 'bar'; UTF8::filter_input(INPUT_GET, 'foo', FILTER_SANITIZE_STRING)); // 'bar'

参数

  • `int $type

    可以是 INPUT_GETINPUT_POSTINPUT_COOKIEINPUT_SERVERINPUT_ENV 之一。

` - `string $variable_name

要获取的变量名称。

` - `int $filter [可选]

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

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

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

`

返回

  • `混合

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

`

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

“filter_input_array()”包装函数,正常化为UTF-8 NFC,在需要时从WINDOWS-1252转换。

获取外部变量并可选地进行过滤。

示例: // _GET['foo'] = 'bar'; UTF8::filter_input_array(INPUT_GET, array('foo' => 'FILTER_SANITIZE_STRING')); // array('bar')

参数

  • `int $type

    可以是 INPUT_GETINPUT_POSTINPUT_COOKIEINPUT_SERVERINPUT_ENV 之一。

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

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

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

` - `bool $add_empty [可选]

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

`

返回

  • `混合

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

`

filter_var(float|int|string|null $variable, int $filter, int|int[]|null $options): mixed

“filter_var()”包装函数,正常化为UTF-8 NFC,在需要时从WINDOWS-1252转换。

使用指定的过滤器过滤变量。

示例:UTF8::filter_var('-ABC-中文空白-', FILTER_VALIDATE_URL); // false

参数

  • `float|int|string|null $variable

    要过滤的值。

` - `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

`

返回

  • `混合

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

`

finfo_loaded(): bool

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

参数:

返回

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

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

返回字符串的前 $n 个字符。

参数

  • string $str <p>输入字符串.</p>
  • int $n <p>从开头获取字符的数量.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

fits_inside(string $str, int $box_size): bool

检查Unicode字符的数量是否不大于指定的整数。

示例: UTF8::fits_inside('κόσμε', 6); // false

参数

  • string $str 要检查的原始字符串
  • int $box_size 要检查的字符串的字符大小

返回

  • bool <p><strong>TRUE</strong> 如果字符串小于或等于 $box_size, <strong>FALSE</strong> 否则.</p>

fix_simple_utf8(string $str): string

尝试修复简单的损坏的 UTF-8 字符串。

信息:如果您需要更复杂的损坏的 UTF-8 字符串修复,请查看 "UTF8::fix_utf8()"。

示例: UTF8::fix_simple_utf8('Düsseldorf'); // 'Düsseldorf'

如果您收到一个从 Windows-1252 转换为 ISO-8859-1 的 UTF-8 字符串(忽略 80 到 9F 的 Windows-1252 字符),请使用此函数进行修复。参见: http://en.wikipedia.org/wiki/Windows-1252

参数

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

返回

  • string

fix_utf8(string|string[] $str): string|string[]

修复双(或多个)编码的 UTF8 字符串。

示例: UTF8::fix_utf8('Fédération'); // 'Fédération'

参数

  • string|string[] $str 您可以使用字符串或字符串数组

返回

  • string|string[] 将返回修复后的输入-"数组"或修复后的输入-"字符串"

getCharDirection(string $char): string

获取特定字符的字符。

示例: UTF8::getCharDirection('ا'); // 'RTL'

参数

  • string $char

返回

  • string <p>'RTL' 或 'LTR'</p>

getSupportInfo(string|null $key): mixed

检查 php 支持。

参数

  • string|null $key

返回

  • mixed 如果 $key === null,则返回完整的支持-"数组";如果使用了 $key 并可用,则返回 bool 值;否则返回 null

get_file_type(string $str, array $fallback): null[]|string[]

注意:此方法仅适用于某些文件类型(png、jpg);如果需要更多支持类型,请使用例如 "finfo"。

参数

  • string $str
  • array{ext: (null|string), mime: (null|string), type: (null|string)} $fallback <p>具有以下键:'ext', 'mime', 'type'</p>

返回

  • null[]|string[] <p>具有以下键:'ext', 'mime', 'type'</p>

get_random_string(int $length, string $possible_chars, string $encoding): string

参数

  • int $length <p>随机字符串的长度。</p>
  • string $possible_chars [optional] <p>随机选择使用的字符字符串。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

get_unique_string(int|string $extra_entropy, bool $use_md5): string

参数

  • int|string $extra_entropy [optional] <p>通过字符串或整数值提供额外熵。</p>
  • bool $use_md5 [optional] <p>返回唯一标识符作为md5哈希?默认:true。</p>

返回

  • string

has_lowercase(string $str): bool

如果字符串包含小写字符,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串是否包含小写字符。</p>

has_uppercase(string $str): bool

如果字符串包含大写字符,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串是否包含大写字符。</p>

has_whitespace(string $str): bool

如果字符串包含空格,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串是否包含空格。</p>

hex_to_chr(string $hexdec): false|string

将十六进制值转换为UTF-8字符。

INFO: 与UTF8::chr_to_hex()相反

EXAMPLE: UTF8::hex_to_chr('U+00a7'); // '§'

参数

  • string $hexdec <p>十六进制值。</p>

返回

  • false|string 一个单个的UTF-8字符

hex_to_int(string $hexdec): false|int

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

INFO: 与UTF8::int_to_hex()相反

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

参数

  • string $hexdec <p>十六进制代码点表示。</p>

返回

  • false|int <p>代码点,或失败时返回false。</p>

html_encode(string $str, bool $keep_ascii_chars, string $encoding): string

将UTF-8字符串转换为一系列HTML编号实体。

INFO: 与UTF8::html_decode()相反

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

参数

  • string $str <p>要编码为编号实体的Unicode字符串。</p>
  • bool $keep_ascii_chars [optional] <p>保留ASCII字符。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string HTML编号实体

html_entity_decode(string $str, int|null $flags, string $encoding): string

UTF-8版本的html_entity_decode()

我们不使用html_entity_decode()的原因是,虽然省略实体末尾的分号在技术上是不正确的,但大多数浏览器仍会正确解释该实体。html_entity_decode()不转换不带分号的实体,所以我们在这里有自己的小解决方案。真糟糕。

将所有HTML实体转换为相应的字符。

INFO: 与UTF8::html_encode()相反

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

参数

  • `string $str

    输入字符串。

` - `int|null $flags [optional]

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

可用 flags 常量

` - `string $encoding [optional]

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

`

返回

  • string 解码后的字符串

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

通过"UTF8::htmlspecialchars()"创建字符串的转义HTML版本。

参数

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

返回

  • string

html_stripe_empty_tags(string $str): string

删除空HTML标签。

e.g.

参数

  • string $str

返回

  • string

htmlentities(string $str, int $flags, string $encoding, bool $double_encode): string

将所有适用字符转换为HTML实体:htmlentities()的UTF-8版本。

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

参数

  • `string $str

    输入字符串。

- `int $flags [可选]

以下标志之一或多个的位掩码,指定如何处理引号、无效代码单元序列以及使用的文档类型。默认为 ENT_COMPAT | ENT_HTML401。

可用 flags 常量

` - `string $encoding [optional]

类似于 htmlspecialcharshtmlentities 可选接受第三个参数 encoding,该参数定义了转换中使用的编码。虽然这个参数在技术上是可以省略的,但强烈建议为您的代码指定正确的值。

- `bool $double_encode [可选]

double_encode 关闭时,PHP 不会对现有 HTML 实体进行编码。默认是将所有内容转换为编码。

`

返回

  • `string

    编码后的字符串。

    如果输入的 string 在给定的 encoding 中包含无效的代码单元序列,则返回空字符串,除非设置了 ENT_IGNOREENT_SUBSTITUTE 标志。

`

htmlspecialchars(string $str, int $flags, string $encoding, bool $double_encode): string

仅将特殊字符转换为 HTML 实体:htmlspecialchars() 的 UTF-8 版本

INFO: 查看文档 "UTF8::htmlentities()"

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

参数

  • `string $str

    正在转换的字符串。

- `int $flags [可选]

以下标志之一或多个的位掩码,指定如何处理引号、无效代码单元序列以及使用的文档类型。默认为 ENT_COMPAT | ENT_HTML401。

可用 flags 常量

` - `string $encoding [optional]

定义转换中使用的编码。

对于此函数,ISO-8859-1、ISO-8859-15、UTF-8、cp866、cp1251、cp1252 和 KOI8-R 编码在以下条件下被认为是等效的:即如果字符串本身适用于该编码,因为受 htmlspecialchars 影响的字符在这些所有编码中占据相同的位置。

- `bool $double_encode [可选]

double_encode 关闭时,PHP 不会对现有 HTML 实体进行编码,默认是将所有内容转换为编码。

`

返回

  • `string the converted string.`

如果输入的 string 在给定的 encoding 中包含无效的代码单元序列,则返回空字符串,除非设置了 ENT_IGNOREENT_SUBSTITUTE 标志。

iconv_loaded(): bool

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

参数:

返回

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

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

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

INFO: 与 UTF8::hex_to_int() 相反

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

参数

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

返回

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

intlChar_loaded(): bool

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

参数:

返回

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

intl_loaded(): bool

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

参数:

返回

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

is_alpha(string $str): bool

如果字符串只包含字母字符,则返回 true,否则返回 false。

参数

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

返回

  • bool <p>$str 是否只包含字母字符.</p>

is_alphanumeric(string $str): bool

如果字符串只包含字母和数字字符,则返回 true,否则返回 false。

参数

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

返回

  • bool <p>$str 是否只包含字母数字字符.</p>

is_ascii(string $str): bool

检查字符串是否为 7 位 ASCII。

示例:UTF8::is_ascii('白'); // false

参数

  • string $str <p>要检查的字符串.</p>

返回

  • `bool

    true 如果它是 ASCII
    false 否则

`

is_base64(string|null $str, bool $empty_string_is_valid): bool

如果字符串是base64编码,则返回true,否则返回false。

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

参数

  • string|null $str <p>输入字符串.</p>
  • bool $empty_string_is_valid [optional] <p>空字符串是否是有效的base64编码?</p>

返回

  • bool <p>字符串 $str 是否是base64编码的.</p>

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

检查输入是否为二进制。

.. (看起来像是一个漏洞)。

示例: UTF8::is_binary(01); // true

参数

  • int|string $input
  • bool $strict

返回

  • bool

is_binary_file(string $file): bool

检查文件是否为二进制。

示例: UTF8::is_binary('./utf32.txt'); // true

参数

  • string $file

返回

  • bool

is_blank(string $str): bool

如果字符串只包含空白字符,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串 $str 是否只包含空白字符.</p>

is_bom(string $str): bool

检查给定的字符串是否等于任何“字节顺序标记”(BOM)。

警告:如果要在字符串中检查BOM,请使用“UTF8::string_has_bom()”。

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

参数

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

返回

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

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

确定字符串是否被认为是空的。

如果变量不存在或其值等于FALSE,则被认为是空的。如果变量不存在,empty()不会生成警告。

参数

  • array|float|int|string $str

返回

  • bool <p>字符串 $str 是否为空().</p>

is_hexadecimal(string $str): bool

如果字符串只包含十六进制字符,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串 $str 是否只包含十六进制字符.</p>

is_html(string $str): bool

检查字符串是否包含任何HTML标签。

示例: UTF8::is_html('lall'); // true

参数

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

返回

  • bool <p>字符串 $str 是否包含HTML元素.</p>

is_json(string $str, bool $only_array_or_object_results_are_valid): bool

尝试检查"$str"是否是JSON字符串。

示例: UTF8::is_json('{"array":[1,"¥","ä"]}'); // true

参数

  • string $str <p>输入字符串.</p>
  • bool $only_array_or_object_results_are_valid [optional] <p>只有数组和对象是有效的JSON结果.</p>

返回

  • bool <p>字符串 $str 是否是JSON格式.</p>

is_lowercase(string $str): bool

参数

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

返回

  • bool <p>字符串 $str 是否只包含小写字符.</p>

is_printable(string $str): bool

如果字符串只包含可打印(非不可见)字符,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串 $str 是否只包含可打印(非不可见)字符.</p>

is_punctuation(string $str): bool

如果字符串只包含标点符号字符,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串 $str 是否只包含标点符号字符.</p>

is_serialized(string $str): bool

如果字符串是序列化的,则返回true,否则返回false。

参数

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

返回

  • bool <p>字符串 $str 是否是序列化的.</p>

is_uppercase(string $str): bool

如果字符串只包含小写字母,则返回 true,否则返回 false。

参数

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

返回

  • bool <p>判断 $str 是否只包含小写字母.</p>

is_url(string $url, bool $disallow_localhost): bool

检查 $url 是否为正确的 URL。

参数

  • string $url
  • bool $disallow_localhost

返回

  • bool

is_utf8(int|string|string[]|null $str, bool $strict): bool

检查传入的输入是否只包含有效的 UTF-8 字节序列。

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

参数

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

返回

  • bool

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

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

示例: UTF8::is_utf16(file_get_contents('utf-16-le.txt')); // 1 // UTF8::is_utf16(file_get_contents('utf-16-be.txt')); // 2 // UTF8::is_utf16(file_get_contents('utf-8.txt')); // false

参数

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

返回

  • false|int <strong>false</strong> 如果不是 UTF-16,<br> <strong>1</strong> 对于 UTF-16LE,<br> <strong>2</strong> 对于 UTF-16BE

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

检查字符串是否为 UTF-32。

示例: UTF8::is_utf32(file_get_contents('utf-32-le.txt')); // 1 // UTF8::is_utf32(file_get_contents('utf-32-be.txt')); // 2 // UTF8::is_utf32(file_get_contents('utf-8.txt')); // false

参数

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

返回

  • false|int <strong>false</strong> 如果不是 UTF-32,<br> <strong>1</strong> 对于 UTF-32LE,<br> <strong>2</strong> 对于 UTF-32BE

json_decode(string $json, bool $assoc, int $depth, int $options): mixed

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
解码 JSON 字符串

示例:UTF8::json_decode('[1,"\u00a5","\u00e4"]'); // array(1, '¥', 'ä')

参数

  • `string $json

    要解码的 json 字符串。

此函数仅适用于 UTF-8 编码的字符串。

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

` - `bool $assoc [optional]

TRUE 时,返回的对象将被转换为关联数组。

` - `int $depth [optional]

用户指定的递归深度。

` - `int $options [optional]

JSON 解码选项的位掩码。目前仅支持 JSON_BIGINT_AS_STRING(默认将大整数转换为浮点数)

`

返回

  • mixed <p>在适当的 PHP 类型中编码的 <i>json</i> 的值。true、false 和 null(不区分大小写)分别返回为 TRUEFALSENULL。如果 json 无法解码或编码的数据超过递归限制,则返回 NULL

json_encode(mixed $value, int $options, int $depth): false|string

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
返回值的 JSON 表示形式。

示例:UTF8::json_enocde(array(1, '¥', 'ä')); // '[1,"\u00a5","\u00e4"]'

参数

  • `mixed $value

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

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

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

` - `int $options [optional]

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

` - `int $depth [optional]

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

`

返回

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

json_loaded(): bool

检查服务器上是否有 JSON。

参数:

返回

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

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

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

示例: UTF8::lcfirst('ÑTËRNÂTIÔNÀLIZÆTIØN'); // ñTËRNÂTIÔNÀLIZÆTIØN

参数

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

返回

  • 生成的字符串

lcwords(string $str, string[] $exceptions, string $char_list, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length): string

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

参数

  • string $str <p>输入字符串.</p>
  • string[] $exceptions [可选] <p>排除某些单词的转换</p>
  • string $char_list [可选] <p>包含在单词中但不作为新单词开始的额外字符</p>
  • string $encoding [可选] <p>设置字符集</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
  • string|null $lang [可选] <p>设置特殊情况的语种:az, el, lt, tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>

返回

  • string

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

从UTF-8字符串的开头删除空白或其他字符。

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

参数

  • string $str <p>要修剪的字符串</p>
  • string|null $chars <p>可选的要从左侧删除的字符</p>

返回

  • 从左侧删除了不需要的字符的字符串

max(string[]|string $arg): string|null

返回给定数据中具有最大码点的UTF-8字符。

示例: UTF8::max('abc-äöü-中文空白'); // 'ø'

参数

  • string[]|string $arg <p>UTF-8编码的字符串或此类字符串的数组</p>

返回

  • string|null <p>具有最高码点的字符,失败或空输入时返回null</p>

max_chr_width(string $str): int

计算并返回给定字符串中任何UTF-8编码字符占用的最大字节数。

示例: UTF8::max_chr_width('Intërnâtiônàlizætiøn'); // 2

参数

  • string $str <p>原始Unicode字符串.</p>

返回

  • int <p>给定字符的最大字节长度.</p>

mbstring_loaded(): bool

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

参数:

返回

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

min(string|string[] $arg): string|null

返回给定数据中具有最小码点的UTF-8字符。

示例: UTF8::min('abc-äöü-中文空白'); // '-'

参数

  • string|string[] $arg <strong>UTF-8编码的字符串或此类字符串的数组</strong>

返回

  • string|null <p>具有最低码点的字符,失败或空输入时返回null.</p>

normalize_encoding(mixed $encoding, mixed $fallback): mixed|string

规范化编码-"名称"输入。

示例: UTF8::normalize_encoding('UTF8'); // 'UTF-8'

参数

  • mixed $encoding <p>例如:ISO, UTF8, WINDOWS-1251 等.</p>
  • string|TNormalizeEncodingFallback $fallback <p>例如:UTF-8</p>

返回

  • mixed|string <p>例如:ISO-8859-1, UTF-8, WINDOWS-1251 等.<br>默认情况下,将返回空字符串作为后备选项</p>

normalize_line_ending(string $str, string|string[] $replacer): string

标准化换行符为Unix-like。

参数

  • string $str <p>输入字符串.</p>
  • string|string[] $replacer <p>替换字符,例如 "\n" (Linux) 或 "\r\n" (Windows)。您也可以在这里使用 \PHP_EOL。</p>

返回

  • string <p>具有标准化换行符的字符串。</p>

normalize_msword(string $str): string

标准化一些MS Word特殊字符。

示例: UTF8::normalize_msword('„Abcdef…”'); // '"Abcdef..."'

参数

  • 字符串 $str <p>需要归一化的字符串。</p>

返回

  • 字符串 <p>包含常用字符的Word文档中归一化字符的字符串。</p>

normalize_whitespace(string $str, bool $keep_non_breaking_space, bool $keep_bidi_unicode_controls): string

归一化空白。

示例: UTF8::normalize_whitespace("abc-\xc2\xa0-öäü-\xe2\x80\xaf-\xE2\x80\xAC", true); // "abc-\xc2\xa0-öäü- -"

参数

  • 字符串 $str <p>需要归一化的字符串。</p>
  • bool $keep_non_breaking_space [可选] <p>设置为true,以保留非换行空格。</p>
  • bool $keep_bidi_unicode_controls [可选] <p>设置为true,以保留不可打印(用于网页)的双向文本字符。</p>

返回

  • 字符串 <p>包含归一化空白的空间字符串。</p>

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

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

信息:与UTF8::chr()相反

示例: UTF8::ord('☃'); // 0x2603

参数

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

返回

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

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

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

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

示例: UTF8::parse_str('Iñtërnâtiônéàlizætiøn=測試&arr[]=foo+測試&arr[]=ການທົດສອບ', $array); echo $array['Iñtërnâtiônéàlizætiøn']; // '測試'

参数

  • string $str <p>输入字符串.</p>
  • array $result <p>结果将返回到这个引用参数中。</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>

返回

  • bool <p>如果PHP无法解析字符串且没有任何$result,则返回<strong>false</strong>。</p>

pcre_utf8_support(): bool

检查是否提供了\u修饰符,该修饰符可启用PCRE中的Unicode支持。

参数:

返回

  • `bool

    true如果支持可用,
    false 否则

`

range(int|string $var1, int|string $var2, bool $use_ctype, string $encoding, float|int $step): string[]

创建包含一系列UTF-8字符的数组。

示例: UTF8::range('κ', 'ζ'); // array('κ', 'ι', 'θ', 'η', 'ζ',)

参数

  • int|string $var1 <p>数值或十六进制代码点,或从UTF-8字符开始的标识符。</p>
  • int|string $var2 <p>数值或十六进制代码点,或到UTF-8字符结束的标识符。</p>
  • bool $use_ctype <p>使用ctype检测数值和十六进制,否则我们将使用简单的"is_numeric"。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
  • `float|int $step [可选]

    如果提供了步长值,则它将用作序列中元素之间的增量。步长应指定为正数。如果未指定,则步长默认为1。

`

返回

  • string[]

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

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

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

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

参数

  • string $str <p>输入字符串.</p>
  • bool $multi_decode <p>尽可能多次解码。</p>

返回

  • 字符串 <p>解码后的URL,作为一个字符串。</p>

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

将 $str 中所有 $pattern 发生处替换为 $replacement。

参数

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

返回

  • string

remove_bom(string $str): string

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

示例: UTF8::remove_bom("\xEF\xBB\xBFΜπορώ να"); // 'Μπορώ να'

参数

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

返回

  • 字符串 <p>没有 UTF-BOM 的字符串.</p>

remove_duplicates(string $str, string|string[] $what): string

从另一个字符串中移除字符串的重复出现。

示例: UTF8::remove_duplicates('öäü-κόσμεκόσμε-äöü', 'κόσμε'); // 'öäü-κόσμε-äöü'

参数

  • 字符串 $str <p>基本字符串.</p>
  • 字符串|string[] $what <p>在基本字符串中要搜索的字符串.</p>

返回

  • 字符串 <p>移除了重复的字符串.</p>

remove_html(string $str, string $allowable_tags): string

通过 "strip_tags()" 从字符串中移除 html。

参数

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

    可以使用可选的第二个参数来指定不应该被移除的标签。默认: null

`

返回

  • 字符串 <p>没有 html 标签的字符串.</p>

remove_html_breaks(string $str, string $replacement): string

从字符串中移除所有断行 [
| \r\n | \r | \n | .

..]

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $replacement [可选] <p>默认为一个空字符串.</p>

返回

  • 字符串 <p>没有断行的字符串.</p>

remove_invisible_characters(string $str, bool $url_encoded, string $replacement): string

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

例如:这可以防止在 ascii 字符之间嵌入 null 字符,如 Java\0script。

示例: UTF8::remove_invisible_characters("κόσ\0με"); // 'κόσμε'

https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/Common.php 复制

参数

  • string $str <p>输入字符串.</p>
  • `bool $url_encoded [可选]

    尝试移除 URL 编码的控制字符。警告:可能包含错误阳性,例如 aa%0Baa -> aaaa。


默认: false

` - `字符串 $replacement [可选]

替换字符。

`

返回

  • 字符串 <p>没有不可见字符的字符串.</p>

remove_left(string $str, string $substring, string $encoding): string

如果存在,则返回一个新字符串,其前缀 $substring 已被移除。

参数

  • string $str <p>输入字符串.</p>
  • 字符串 $substring <p>要移除的前缀.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • 字符串 <p>没有前缀 $substring 的字符串.</p>

remove_right(string $str, string $substring, string $encoding): string

如果存在,则返回一个新字符串,其后缀 $substring 已被移除。

参数

  • string $str
  • 字符串 $substring <p>要移除的后缀.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • 字符串 <p>没有后缀 $substring 的字符串 $str.</p>

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

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

参数

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

返回

  • 字符串 <p>有替换部分的字符串.</p>

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

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

参数

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

返回

  • 字符串 <p>有替换部分的字符串.</p>

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

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

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

参数

  • 字符串 $str <p>输入字符串</p>
  • 字符串 $replacement_char <p>替换字符.</p>
  • 布尔值 $process_invalid_utf8_chars

    转换无效的UTF-8字符

返回

  • 字符串

    没有菱形问号(�)的字符串。

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

从UTF-8字符串的末尾删除空白或其他字符。

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

参数

  • string $str

    要修剪的字符串。

  • string|null $chars

    可选的要从字符串中删除的字符。

返回

  • string

    从右侧删除了不需要字符的字符串。

showSupport(bool $useEcho): string|void

警告:默认打印原生UTF-8支持(库),例如用于调试。

参数

  • bool $useEcho

返回

  • string|void

single_chr_html_encode(string $char, bool $keep_ascii_chars, string $encoding): string

将UTF-8字符转换为HTML编号实体,如"{".

示例: UTF8::single_chr_html_encode('κ'); // 'κ'

参数

  • string $char

    要编码为编号实体的Unicode字符。

  • bool $keep_ascii_chars

    设置为 true 以保留ASCII字符。

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

返回

  • string

    给定字符的HTML编号实体。

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

参数

  • string $str
  • int $tab_length

返回

  • string

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

返回字符串的camelCase版本。修剪周围的空格,将数字、空格、破折号和下划线后面的字母大写,并删除空格、破折号以及下划线。

参数

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

返回

  • string

str_capitalize_name(string $str): string

返回每个单词首字母大写的字符串,除非单词是名字且不应该大写。

参数

  • string $str

返回

  • string

    将 $str 大写的字符串。

str_contains(string $haystack, string $needle, bool $case_sensitive): bool

如果字符串包含 $needle,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来使比较不区分大小写。

参数

  • string $haystack

    输入字符串。

  • string $needle

    要查找的子串。

  • bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>

返回

  • bool

    是否 $haystack 包含 $needle。

str_contains_all(string $haystack, array $needles, bool $case_sensitive): bool

如果字符串包含所有 $needles,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来使比较不区分大小写。

参数

  • string $haystack

    输入字符串。

  • array $needles

    要查找的子串。

  • bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>

返回

  • bool

    是否 $haystack 包含 $needle。

str_contains_any(string $haystack, array $needles, bool $case_sensitive): bool

如果字符串包含任何 $needles,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $case_sensitive 设置为 false 来使比较不区分大小写。

参数

  • string $haystack

    输入字符串。

  • array $needles

    要查找的子串。

  • bool $case_sensitive [可选] <p>是否强制执行大小写敏感。默认: true</p>

返回

  • bool

    是否 $str 包含 $needle。

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

返回一个由破折号分隔的小写且修剪过的字符串。破折号在字符串的大写字符前插入(除了字符串的第一个字符),以及在空格和下划线的地方插入。

参数

  • string $str <p>输入字符串.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

返回一个由给定分隔符分隔的小写且修剪过的字符串。

分隔符在字符串的大写字符前插入(除了字符串的第一个字符),以及在空格、破折号和下划线的地方插入。字母分隔符不会被转换为小写。

参数

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

返回

  • string

str_detect_encoding(string $str): false|string

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

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

参数

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

返回

  • `false|string

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

`

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

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

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

  • bool

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

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

  • 大小写敏感

参数

  • string $str <p>输入字符串.</p>
  • string[] $substrings <p>要查找的子字符串。</p>

返回

  • bool <p>字符串是否以子字符串结尾。</p>

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

确保字符串以$substring开始。如果不存在,则添加到前面。

参数

  • string $str <p>输入字符串.</p>
  • string $substring <p>如果不存在则添加的子字符串。</p>

返回

  • string

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

确保字符串以$substring结束。如果不存在,则添加到后面。

参数

  • string $str <p>输入字符串.</p>
  • string $substring <p>如果不存在则添加的子字符串。</p>

返回

  • string

str_humanize(string $str): string

将字符串的第一个单词大写,将下划线替换为空格,并删除'_id'。

参数

  • string $str

返回

  • string

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

检查字符串是否以给定的子字符串结尾,不区分大小写。

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

  • bool

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

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

  • 不区分大小写

参数

  • string $str <p>输入字符串.</p>
  • string[] $substrings <p>要查找的子字符串。</p>

返回

  • bool <p>字符串是否以子字符串结尾。</p>

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

在提供的索引位置将$substring插入字符串中。

参数

  • string $str <p>输入字符串.</p>
  • string $substring <p>要插入的字符串。</p>
  • int $index <p>要插入子字符串的索引。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

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

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

参数

  • `string|string[] $search

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

` - `string|string[] $replacement

替换项。

` - `TStrIReplaceSubject $subject

如果主题是数组,则对主题的每个条目执行搜索和替换,并返回数组。

` - `int $count [可选]

通过引用传递的count将返回匹配并替换的针的数量。

`

返回

  • string|string[] <p>替换字符串或替换字符串数组。</p>

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

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

参数

  • string $str <p>输入字符串.</p>
  • string $search <p>要搜索的字符串。</p>
  • string $replacement <p>替换项。</p>

返回

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

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

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

参数

  • string $str <p>输入字符串.</p>
  • string $search <p>要搜索的字符串。</p>
  • string $replacement <p>替换项。</p>

返回

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

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

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

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

  • bool

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

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

  • 不区分大小写

参数

  • string $str <p>输入字符串.</p>
  • array $substrings <p>要查找的子串.</p>

返回

  • bool <p>字符串是否以 $substring 开头.</p>

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

获取分隔符第一次出现后的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

获取分隔符最后一次出现后的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

获取分隔符第一次出现前的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

获取分隔符最后一次出现前的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

str_isubstr_first(string $str, string $needle, bool $before_needle, string $encoding): string

获取 "$needle" 第一次出现后(或通过 "$before_needle" 在 "$needle" 之前)的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $needle <p>要查找的字符串.</p>
  • bool $before_needle [可选] <p>默认: false</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

str_isubstr_last(string $str, string $needle, bool $before_needle, string $encoding): string

获取 "$needle" 最后一次出现后(或通过 "$before_needle" 在 "$needle" 之前)的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $needle <p>要查找的字符串.</p>
  • bool $before_needle [可选] <p>默认: false</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

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

参数

  • string $str <p>输入字符串.</p>
  • int $n <p>从末尾获取的字符数.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

限制字符串中的字符数。

参数

  • string $str <p>输入字符串.</p>
  • int $length [可选] <p>默认: 100</p>
  • string $str_add_on [可选] <p>默认: …</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

限制字符串中的字符数,但也在下一个单词之后。

示例: UTF8::str_limit_after_word('fòô bàř fòô', 8, ''); // 'fòô bàř'

参数

  • string $str <p>输入字符串.</p>
  • int $length [可选] <p>默认: 100</p>
  • string $str_add_on [可选] <p>默认: …</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

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

参数

  • string $str1 <p>输入字符串.</p>
  • string $str2 <p>用于比较的第二个字符串.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

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

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

在发生平局的情况下,返回第一个出现的那个。

参数

  • string $str1
  • string $str2 <p>用于比较的第二个字符串.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • 字符串 <p>字符串,其中其 $str 是最长公共子串.</p>

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

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

参数

  • string $str1
  • string $str2 <p>用于比较的第二个字符串.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string

str_matches_pattern(string $str, string $pattern): bool

如果 $str 与提供的模式匹配,则返回 true,否则返回 false。

参数

  • string $str <p>输入字符串.</p>
  • string $pattern <p>用于匹配的正则表达式模式.</p>

返回

  • bool <p>是否 $str 匹配模式.</p>

string $str, float $percent, string $obfuscateChar, string[] $keepChars): string

将字符串转换为混淆字符串。

示例:

UTF8::str_obfuscate('lars@moelleken.org', 0.5, '', ['@', '.']); // 例如 "l**@m**lleke*.r"

参数

  • string $str
  • float $percent
  • string $obfuscateChar
  • string[] $keepChars

返回

  • string <p>混淆字符串.</p>

str_offset_exists(string $str, int $offset, string $encoding): bool

返回是否在索引处存在字符。偏移量可以是负数,以从字符串的最后一个字符开始计数。实现了部分 ArrayAccess 接口。

参数

  • string $str <p>输入字符串.</p>
  • int $offset <p>要检查的索引.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • bool <p>是否索引存在.</p>

str_offset_get(string $str, int $index, string $encoding): string

返回给定索引处的字符。偏移量可以是负数,以从字符串的最后一个字符开始计数。实现了部分 ArrayAccess 接口,如果索引不存在,则抛出 OutOfBoundsException。

参数

  • string $str <p>输入字符串.</p>
  • int $index <p>从其中检索字符的 <strong>索引</strong>.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>指定索引处的字符.</p>

str_pad(string $str, int $pad_length, string $pad_string, int|string $pad_type, string $encoding): string

使用另一个字符串填充 UTF-8 字符串到指定长度。

示例: UTF8::str_pad('中文空白', 10, '_', STR_PAD_BOTH); // '中文空白'

参数

  • string $str <p>输入字符串.</p>
  • int $pad_length <p>返回字符串的长度.</p>
  • string $pad_string [optional] <p>用于填充输入字符串的字符串.</p>
  • `int|string $pad_type [optional]

    可以是 STR_PAD_RIGHT (默认),[或字符串 "right"]
    STR_PAD_LEFT [或字符串 "left"] 或
    STR_PAD_BOTH [或字符串 "both"]

` - `string $encoding [optional]

默认: 'UTF-8'

`

返回

  • string <p>返回填充后的字符串.</p>

str_pad_both(string $str, int $length, string $pad_str, string $encoding): string

返回一个给定长度的新字符串,使得字符串的两侧都进行了填充。是 "UTF8::str_pad()" 的别名,其中 $pad_type 为 'both'。

参数

  • string $str
  • int $length <p>填充后所需的字符串长度.</p>
  • string $pad_str [optional] <p>用于填充的字符串,默认为空格。默认: ' '</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>应用填充后的字符串.</p>

str_pad_left(string $str, int $length, string $pad_str, string $encoding): string

返回一个给定长度的字符串,使得字符串的开始处进行了填充。是 "UTF8::str_pad()" 的别名,其中 $pad_type 为 'left'。

参数

  • string $str
  • int $length <p>填充后所需的字符串长度.</p>
  • string $pad_str [optional] <p>用于填充的字符串,默认为空格。默认: ' '</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>应用了左填充的字符串.</p>

str_pad_right(string $str, int $length, string $pad_str, string $encoding): string

返回一个指定长度的字符串,字符串的末尾将被填充。等价于“UTF8::str_pad()”,其中$pad_type为'right'。

参数

  • string $str
  • int $length <p>填充后所需的字符串长度.</p>
  • string $pad_str [optional] <p>用于填充的字符串,默认为空格。默认: ' '</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>带有右填充的字符串.</p>

str_repeat(string $str, int $multiplier): string

重复一个字符串。

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

参数

  • `string $str

    要重复的字符串。

` - `int $multiplier

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

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

`

返回

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

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

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

参数

  • string $str <p>输入字符串.</p>
  • string $search <p>要搜索的字符串。</p>
  • string $replacement <p>替换项。</p>

返回

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

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

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

参数

  • string $str <p>输入字符串.</p>
  • string $search <p>要搜索的字符串。</p>
  • string $replacement <p>替换项。</p>

返回

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

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

将第一个"$search"-项替换为"$replace"-项。

参数

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

返回

  • string

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

将最后一个"$search"-项替换为"$replace"-项。

参数

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

返回

  • string

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

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

信息:使用随机算法,在加密目的上较弱

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

参数

  • 字符串 $str <p>输入字符串</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>打乱的字符串.</p>

str_slice(string $str, int $start, int|null $end, string $encoding): false|string

返回从$start开始的子字符串,直到但不包括由$end指定的索引。如果省略$end,则提取剩余的字符串。如果$end是负数,则从字符串的末尾计算。

参数

  • string $str
  • int $start <p>提取开始的初始索引.</p>
  • int|null $end [optional] <p>提取结束的索引。默认:null</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • false|string <p>提取的子字符串.</p><p>如果<i>str</i>的长度小于<i>start</i>个字符,则返回<b>FALSE</b>。

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

将字符串转换为例如:“snake_case”

参数

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

返回

  • string <p>snake_case格式的字符串.</p>

str_sort(string $str, bool $unique, bool $desc): string

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

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

参数

  • string $str <p>UTF-8字符串.</p>
  • bool $unique <p>排序唯一。如果<strong>true</strong>,则忽略重复的字符</p>
  • bool $desc <p>如果<strong>true</strong>,则按反向代码点顺序排序字符</p>

返回

  • string <p>排序后的字符字符串.</p>

str_split(int|string $input, int $length, bool $clean_utf8, bool $try_to_use_mb_functions): string[]

将字符串转换为unicode字符数组。

示例:UTF8::str_split('中文空白'); // array('中', '文', '空', '白')

参数

  • int|string $input <p>要分割成数组的字符串或int</p>
  • int $length [optional] <p>数组元素的每个最大字符长度</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
  • bool $try_to_use_mb_functions [optional] <p>设置为false,如果您不想使用"mb_substr"</p>

返回

  • string[] <p>包含输入字符块的数组.</p>

str_split_array(int[]|string[] $input, int $length, bool $clean_utf8, bool $try_to_use_mb_functions): string[][]

将字符串转换为Unicode字符数组。

示例: UTF8::str_split_array(['中文空白', 'test'], 2); // [['中文', '空白'], ['te', 'st']]

参数

  • int[]|string[] $input <p>要分割成数组的字符串数组或整型数组.</p>
  • int $length [可选] <p>每个数组元素的最大字符长度.</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
  • bool $try_to_use_mb_functions [optional] <p>设置为false,如果您不想使用"mb_substr"</p>

返回

  • string[][] <p>包含输入块的数组.</p>

str_split_pattern(string $str, string $pattern, int $limit): string[]

使用提供的正则表达式分割字符串,返回字符串数组。可选整数 $limit 将截断结果。

参数

  • string $str
  • string $pattern <p>用于分割字符串的正则表达式.</p>
  • int $limit [可选] <p>要返回的最大结果数。默认:-1 表示无限制</p>

返回

  • string[] <p>字符串数组.</p>

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

检查字符串是否以指定的子字符串开头。

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

  • bool

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

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

  • 大小写敏感

参数

  • string $str <p>输入字符串.</p>
  • array $substrings <p>要查找的子串.</p>

返回

  • bool <p>字符串是否以 $substring 开头.</p>

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

获取分隔符第一次出现后的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

获取分隔符最后一次出现后的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

获取分隔符第一次出现前的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

获取分隔符最后一次出现前的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $separator <p>字符串分隔符.</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

str_substr_first(string $str, string $needle, bool $before_needle, string $encoding): string

获取 "$needle" 第一次出现后(或通过 "$before_needle" 在 "$needle" 之前)的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $needle <p>要查找的字符串.</p>
  • bool $before_needle [可选] <p>默认: false</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

str_substr_last(string $str, string $needle, bool $before_needle, string $encoding): string

获取 "$needle" 最后一次出现后(或通过 "$before_needle" 在 "$needle" 之前)的子串。

参数

  • string $str <p>输入字符串.</p>
  • string $needle <p>要查找的字符串.</p>
  • bool $before_needle [可选] <p>默认: false</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string

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

在给定的子字符串周围包围 $str。

参数

  • string $str
  • string $substring <p>要添加到两侧的子字符串.</p>

返回

  • string <p>两侧都添加了子字符串的字符串.</p>

str_titleize(string $str, array|string[]|null $ignore, string $encoding, bool $clean_utf8, string|null $lang, bool $try_to_keep_the_string_length, bool $use_trim_first, string|null $word_define_chars): string

返回一个缩进后的字符串,其中每个单词的首字母都大写。

也接受一个数组,$ignore,允许您列出不要大写的单词。

参数

  • string $str
  • array|string[]|null $ignore [可选] <p>不要大写的单词数组或 null。默认:null</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>
  • string|null $lang [可选] <p>设置特殊情况的语种:az, el, lt, tr</p>
  • bool $try_to_keep_the_string_length [可选] <p>true === 尝试保持字符串长度:例如 ẞ -> ß</p>
  • bool $use_trim_first [可选] <p>true === 首先缩进输入字符串</p>
  • string|null $word_define_chars [可选] <p>用作空格分隔符的字符字符串 === 单词.</p>

返回

  • string <p>标题化字符串.</p>

str_titleize_for_humans(string $str, array $ignore, string $encoding): string

返回一个缩进后的正确标题化字符串。

也接受一个数组,$ignore,允许您列出不要大写的单词。

改编自 John Gruber 的脚本。

参数

  • string $str
  • array $ignore <p>不要大写的单词数组.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>标题化字符串.</p>

str_to_binary(string $str): false|string

获取特定字符串的二进制表示。

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

参数

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

返回

  • false|string <p>错误时返回 false</p>

str_to_lines(string $str, bool $remove_empty_values, int|null $remove_short_values): string[]

参数

  • string $str
  • bool $remove_empty_values <p>删除空值.</p>
  • int|null $remove_short_values <p>最小字符串长度或 null 以禁用</p>

返回

  • string[]

str_to_words(string $str, string $char_list, bool $remove_empty_values, int|null $remove_short_values): string[]

将字符串转换为单词数组。

示例: UTF8::str_to_words('中文空白 oöäü#s', '#') // array('', '中文空白', ' ', 'oöäü#s', '')

参数

  • string $str
  • 字符串 $char_list <p>用于定义“单词”的额外字符。</p>
  • bool $remove_empty_values <p>删除空值.</p>
  • int|null $remove_short_values <p>最小字符串长度或 null 以禁用</p>

返回

  • string[]

str_truncate(string $str, int $length, string $substring, string $encoding): string

将字符串截断到指定的长度。如果提供了 $substring,并且在截断时发生,则进一步截断字符串,以便在不超出所需长度的情况下附加子串。

参数

  • string $str
  • int $length <p>截断字符串所需长度。</p>
  • string $substring [可选] <p>如果可以适应,则附加的子串。默认:''</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>

返回

  • string <p>截断后的字符串。</p>

str_truncate_safe(string $str, int $length, string $substring, string $encoding, bool $ignore_do_not_split_words_for_one_word): string

将字符串截断到指定的长度,同时确保它不会拆分单词。如果提供了 $substring,并且在截断时发生,则进一步截断字符串,以便在不超出所需长度的情况下附加子串。

参数

  • string $str
  • int $length <p>截断字符串所需长度。</p>
  • string $substring [可选] <p>如果可以适应,则附加的子串。默认:''</p>
  • 字符串 $encoding [可选] <p>默认: 'UTF-8'</p>
  • bool $ignore_do_not_split_words_for_one_word [可选] <p>默认:false</p>

返回

  • string <p>截断后的字符串。</p>

str_underscored(string $str): string

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

在下划线之前插入大写字母(除字符串的第一个字符外),以及空格和破折号。

参数

  • string $str

返回

  • string <p>下划线分隔的字符串。</p>

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

返回所需字符串的UpperCamelCase版本。它修剪周围的空格,将数字、空格、破折号和下划线之后的字母大写,并删除空格、破折号和下划线。

参数

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

返回

  • string <p>UpperCamelCase格式的字符串。</p>

str_word_count(string $str, int $format, string $char_list): int|string[]

获取特定字符串中的单词数。

示例: // 格式:0 -> 仅返回单词数 (int) // UTF8::str_word_count('中文空白 öäü abc#c'); // 4 UTF8::str_word_count('中文空白 öäü abc#c', 0, '#'); // 3

// 格式:1 -> 返回单词数组 // UTF8::str_word_count('中文空白 öäü abc#c', 1); // array('中文空白', 'öäü', 'abc', 'c') UTF8::str_word_count('中文空白 öäü abc#c', 1, '#'); // array('中文空白', 'öäü', 'abc#c')

// 格式:2 -> 返回带有单词偏移的单词数组 // UTF8::str_word_count('中文空白 öäü ab#c', 2); // array(0 => '中文空白', 5 => 'öäü', 9 => 'abc', 13 => 'c') UTF8::str_word_count('中文空白 öäü ab#c', 2, '#'); // array(0 => '中文空白', 5 => 'öäü', 9 => 'abc#c')

参数

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

    0 => 返回单词数(默认)
    1 => 返回单词数组
    2 => 返回带有单词偏移的单词数组

` - `string $char_list [可选]`

包含单词且不开始新单词的额外字符。

`

返回

  • int|string[] <p>字符串中的单词数。</p>

strcasecmp(string $str1, string $str2, string $encoding): int

不区分大小写的字符串比较。

INFO:UTF8::strcmp()的不区分大小写版本

示例: UTF8::strcasecmp("iñtërnâtiôn\nàlizætiøn", "Iñtërnâtiôn\nàlizætiøn"); // 0

参数

  • string $str1 <p>第一个字符串。</p>
  • string $str2 <p>第二个字符串。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

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

strcspn(string $str, string $char_list, int $offset, int|null $length, string $encoding): int

查找不匹配掩码的初始段的长度。

参数

  • string $str
  • string $char_list
  • int $offset
  • int|null $length
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • int

string(int|int[]|string|string[] $intOrHex): string

从码点创建UTF-8字符串。

INFO: 与UTF8::codepoints()相反

EXAMPLE: UTF8::string(array(246, 228, 252)); // 'öäü'

参数

  • int[]|numeric-string[]|int|numeric-string $intOrHex <p>整数或十六进制码点.</p>

返回

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

string_has_bom(string $str): bool

检查字符串是否以"BOM"(字节顺序标记字符)开头。

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

参数

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

返回

  • `bool

    true 如果字符串在开头有BOM,
    false 否则

`

strip_tags(string $str, string|null $allowable_tags, bool $clean_utf8): string

从字符串中删除HTML和PHP标签 + 清理无效的UTF-8。

EXAMPLE: UTF8::strip_tags("κόσμε\xa0\xa1"); // 'κόσμε'

参数

  • `string $str

    输入字符串。

` - `string|null $allowable_tags [optional]

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

HTML注释和PHP标签也会被删除。这是硬编码的,不能通过allowable_tags更改。

` - `bool $clean_utf8 [optional]

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

`

返回

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

strip_whitespace(string $str): string

删除所有空白字符。这包括制表符和换行符,以及多字节空白,如细空格和表意空格。

EXAMPLE: UTF8::strip_whitespace(' Ο συγγραφέας '); // 'Οσυγγραφέας'

参数

  • string $str

返回

  • string

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

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

INFO: 使用UTF8::stripos_in_byte()获取字节长度

EXAMPLE: UTF8::stripos('aσσb', 'ΣΣ'); // 1 (σσ == ΣΣ)

参数

  • string $haystack <p>从其中获取子字符串第一次出现位置的字符串.</p>
  • string $needle <p>要查找的字符串.</p>
  • int $offset [optional] <p>在haystack中开始搜索的位置.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>

返回

  • false|int 返回子字符串在haystack字符串中第一次出现的数字位置,<br> 如果未找到子字符串,则返回 <strong>false</strong>

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

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

参数

  • `string $haystack

    被检查的字符串。

` - `string $needle

从haystack开始计数的位置。

` - `int $offset [optional]

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

`

返回

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

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

返回从第一次出现子字符串开始(包括)到字符串末尾的所有内容。

EXAMPLE: $str = 'iñtërnâtiônàlizætiøn'; $search = 'NÂT';

UTF8::stristr($str, $search)); // 'nâtiônàlizætiøn' UTF8::stristr($str, $search, true)); // 'iñtër'

参数

  • string $haystack <p>输入字符串。必须是有效的UTF-8.</p>
  • string $needle <p>要查找的字符串。必须是有效的UTF-8.</p>
  • `bool $before_needle [optional]

    如果 TRUE,则返回包含第一次出现针(不包括针)的草堆部分。

` - `string $encoding [optional]

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

` - `bool $clean_utf8 [optional]

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

`

返回

  • false|string <p>子串,或如果未找到针则返回 <strong>false</strong>。</p>

strlen(string $str, string $encoding, bool $clean_utf8): false|int

获取字符串长度,而不是字节长度!

INFO: 使用 UTF8::strwidth() 获取字符长度

EXAMPLE: UTF8::strlen("Iñtërnâtiôn\xE9àlizætiøn")); // 20

参数

  • string $str <p>正在检查长度的字符串。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>

返回

  • `false|int

    字符串 $str 中具有字符编码 $encoding 的字符数量(一个多字节字符计为 +1)。


如果例如 mbstring 未安装且我们处理无效字符,则可以返回 false

`

strlen_in_byte(string $str): int

获取字符串的长度(字节)。

参数

  • string $str

返回

  • int

strnatcasecmp(string $str1, string $str2, string $encoding): int

使用 "自然顺序" 算法进行不区分大小写的字符串比较。

INFO: UTF8::strcasecmp() 的自然顺序版本

EXAMPLES: UTF8::strnatcasecmp('2', '10Hello WORLD 中文空白!'); // -1 UTF8::strcasecmp('2Hello world 中文空白!', '10Hello WORLD 中文空白!'); // 1

UTF8::strnatcasecmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // 1 UTF8::strcasecmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // -1

参数

  • string $str1 <p>第一个字符串。</p>
  • string $str2 <p>第二个字符串。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • int <strong>&lt; 0</strong> 如果 str1 小于 str2;<br> <strong>&gt; 0</strong> 如果 str1 大于 str2;<br> <strong>0</strong> 如果它们相等

strnatcmp(string $str1, string $str2): int

使用 "自然顺序" 算法进行字符串比较

INFO: UTF8::strcmp() 的自然顺序版本

EXAMPLES: UTF8::strnatcmp('2Hello world 中文空白!', '10Hello WORLD 中文空白!'); // -1 UTF8::strcmp('2Hello world 中文空白!', '10Hello WORLD 中文空白!'); // 1

UTF8::strnatcmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // 1 UTF8::strcmp('10Hello world 中文空白!', '2Hello WORLD 中文空白!'); // -1

参数

  • string $str1 <p>第一个字符串。</p>
  • string $str2 <p>第二个字符串。</p>

返回

  • int <strong>&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 个字符的不区分大小写的字符串。

EXAMPLE: UTF8::strcasecmp("iñtërnâtiôn\nàlizætiøn321", "iñtërnâtiôn\nàlizætiøn123", 5); // 0

参数

  • string $str1 <p>第一个字符串。</p>
  • string $str2 <p>第二个字符串。</p>
  • int $len <p>比较中使用的字符串长度。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • int <strong>&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 个字符的字符串。

EXAMPLE: UTF8::strncmp("Iñtërnâtiôn\nàlizætiøn321", "Iñtërnâtiôn\nàlizætiøn123", 5); // 0

参数

  • string $str1 <p>第一个字符串。</p>
  • string $str2 <p>第二个字符串。</p>
  • int $len <p>比较中使用的字符数。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • int <strong>&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

在字符串中搜索一组字符中的任何一个。

EXAMPLE: UTF8::strpbrk('-中文空白-', '白'); // '白-'

参数

  • string $haystack <p>在查找 char_list 的字符串。</p>
  • string $char_list <p>此参数区分大小写。</p>

返回

  • false|string <p>从找到的字符开始的字符串,如果没有找到则返回 false。</p>

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

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

INFO: 使用 UTF8::strpos_in_byte() 获取字节长度

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

参数

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

返回

  • false|int <p>在字符串中找到的第一个出现的位置(int)。如果未找到,则返回false。</p>

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

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

参数

  • `string $haystack

    被检查的字符串。

` - `string $needle

从haystack开始计数的位置。

` - `int $offset [optional]

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

`

返回

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

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

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

示例: UTF8::strrchr('κόσμεκόσμε-äöü', 'κόσμε'); // 'κόσμε-äöü'

参数

  • string $haystack <p>从中获取needle最后出现的字符串。</p>
  • string $needle <p>要在大海堆中查找的字符串。</p>
  • `bool $before_needle [optional]

    确定该函数返回大海堆的哪个部分。如果设置为true,则从开始到needle的最后出现返回整个大海堆。如果设置为false,则从needle的最后出现到结束返回整个大海堆。

` - `string $encoding [optional]

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

` - `bool $clean_utf8 [optional]

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

`

返回

  • false|string <p>大海堆的部分或未找到needle时返回false。</p>

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

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

示例: UTF8::strrev('κ-öäü'); // 'üäö-κ'

参数

  • string $str <p>输入字符串.</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • string <p>具有反向字符顺序的字符串。</p>

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

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

示例: UTF8::strrichr('Aκόσμεκόσμε-äöü', 'aκόσμε'); // 'Aκόσμεκόσμε-äöü'

参数

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

    确定该函数返回大海堆的哪个部分。如果设置为true,则从开始到needle的最后出现返回整个大海堆。如果设置为false,则从needle的最后出现到结束返回整个大海堆。

` - `string $encoding [optional]

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

` - `bool $clean_utf8 [optional]

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

`

返回

  • false|string <p>大海堆的部分或未找到needle时返回false。</p>

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

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

示例: UTF8::strripos('ABC-ÖÄÜ-中文空白-中文空白', '中'); // 13

参数

  • string $haystack <p>要查找的字符串。</p>
  • int|string $needle <p>要查找的字符串。</p>
  • int $offset [optional] <p>要忽略的开始或结束的字符数。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>

返回

  • false|int <p>在大海堆字符串中找到的needle的最后出现的数值位置。如果未找到,则返回false。</p>

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

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

参数

  • `string $haystack

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

` - `string $needle

在大海堆中要查找的字符串。

` - `int $offset [optional]

大海堆中开始搜索的位置。

`

返回

  • false|int <p>返回在大海堆字符串中needle最后出现的数值位置,如果未找到则返回false。</p>

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

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

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

参数

  • string $haystack <p>正在检查的字符串,用于查找needle的最后出现位置。</p>
  • int|string $needle <p>要在一堆中查找的字符串。<br>或作为 int 的代码点。</p>
  • `int $offset [optional]

    可以指定在字符串中开始搜索任意数量的字符。负值将在字符串的任意点停止搜索,直到字符串的末尾。

` - `string $encoding [optional]

设置字符集。

` - `bool $clean_utf8 [optional]

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

`

返回

  • false|int <p>在大海堆字符串中找到的needle的最后出现的数值位置。如果未找到,则返回false。</p>

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

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

参数

  • `string $haystack

    正在检查的字符串,用于查找needle的最后出现位置。

` - `string $needle

在大海堆中要查找的字符串。

` - `int $offset [optional]

可以指定在字符串中开始搜索任意数量的字符。负值将在字符串的任意点停止搜索,直到字符串的末尾。

`

返回

  • 返回“针”在“草堆”字符串中最后出现的位置的数值。如果未找到“针”,则返回false。

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

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

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

参数

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

返回

  • false|int

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

返回从“针”在“草堆”中的第一次出现到“草堆”末尾的部分。

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

UTF8::strstr($str, $search)); // 'nâtiônàlizætiøn' UTF8::strstr($str, $search, true)); // 'iñtër'

参数

  • string $haystack <p>输入字符串。必须是有效的UTF-8.</p>
  • string $needle <p>要查找的字符串。必须是有效的UTF-8.</p>
  • `bool $before_needle [optional]

    如果设置为TRUE,strstr()返回从“针”第一次出现之前的部分(不包括“针”)。

` - `string $encoding [optional]

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

` - `bool $clean_utf8 [optional]

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

`

返回

  • false|string <p>子串,或如果未找到针则返回 <strong>false</strong>。</p>

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

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

参数

  • `string $haystack

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

` - `string $needle

在大海堆中要查找的字符串。

` - `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]

` - `bool $clean_utf8 [optional]

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

` - `string $encoding [optional]

设置字符集。

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

设置特殊情况的区域设置:az, el, lt, tr

` - `bool $lower [可选]

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

`

返回

  • string

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

将字符串转换为小写。

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

参数

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

返回

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

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

将字符串转换为大写。

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

参数

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

返回

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

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

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

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

参数

  • string $str <p>正在翻译的字符串。</p>
  • string|string[] $from <p>替换“from”的字符串。</p>
  • string|string[] $to [可选] <p>翻译为“to”的字符串。</p>

返回

  • string <p>此函数返回str的副本,将“from”中的每个字符的所有出现翻译为“to”中相应的字符。</p>

strwidth(string $str, string $encoding, bool $clean_utf8): int

返回字符串的宽度。

INFO: 使用 UTF8::strlen() 获取字节数。

EXAMPLE: UTF8::strwidth("Iñtërnâtiôn\xE9àlizætiøn")); // 21

参数

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

返回

  • int

substr(string $str, int $offset, int|null $length, string $encoding, bool $clean_utf8): false|string

获取字符串的一部分。

EXAMPLE: UTF8::substr('中文空白', 1, 2); // '文空'

参数

  • string $str <p>正在检查的字符串。</p>
  • int $offset <p>在 str 中使用的第一个位置。</p>
  • int|null $length [可选] <p>返回字符串的最大长度。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>
  • bool $clean_utf8 [可选] <p>从字符串中删除非UTF-8字符。</p>

返回

  • false|string <p>由 <i>offset</i> 和 <i>length</i> 参数指定的 <i>str</i> 的部分。</p><p>如果 <i>str</i> 的长度小于 <i>offset</i> 个字符,则返回 <b>FALSE</b>。

substr_compare(string $str1, string $str2, int $offset, int|null $length, bool $case_insensitivity, string $encoding): int

从偏移量开始,对两个字符串进行二进制安全比较,直到指定的字符长度。

EXAMPLE: UTF8::substr_compare("○●◎\r", '●◎', 0, 2); // -1 UTF8::substr_compare("○●◎\r", '◎●', 1, 2); // 1 UTF8::substr_compare("○●◎\r", '●◎', 1, 2); // 0

参数

  • string $str1 <p>正在比较的主要字符串。</p>
  • string $str2 <p>正在比较的次要字符串。</p>
  • int $offset [可选] <p>比较的起始位置。如果为负,则从字符串的末尾开始计数。</p>
  • int|null $length [可选] <p>比较的长度。默认值为与 str 比较的长度和 main_str 长度减去偏移量的最大值。</p>
  • bool $case_insensitivity [可选] <p>如果 case_insensitivity 为 TRUE,比较不区分大小写。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

  • int <strong>&lt; 0</strong> 如果 str1 小于 str2;<br> <strong>&gt; 0</strong> 如果 str1 大于 str2;<br> <strong>0</strong> 如果它们相等

substr_count(string $haystack, string $needle, int $offset, int|null $length, string $encoding, bool $clean_utf8): false|int

计算子字符串出现的次数。

EXAMPLE: UTF8::substr_count('中文空白', '文空', 1, 2); // 1

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>
  • int $offset [可选] <p>开始计数的偏移量。</p>
  • `int|null $length [可选]

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

` - `string $encoding [optional]

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

` - `bool $clean_utf8 [optional]

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

`

返回

  • false|int <p>此函数返回整数或如果没有字符串,则返回 false。</p>

substr_count_in_byte(string $haystack, string $needle, int $offset, int|null $length): false|int

计算子字符串出现的次数。

参数

  • `string $haystack

    被检查的字符串。

` - `string $needle

要查找的字符串。

` - `int $offset [optional]

开始计数的偏移量

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

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

`

返回

  • false|int <p>在待查找字符串中 needle 子字符串出现的次数。</p>

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

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

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

参数

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

返回

  • int

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

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

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

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

substr_in_byte(string $str, int $offset, int|null $length): false|string

获取以字节为单位的字符串的一部分。

参数

  • string $str <p>正在检查的字符串。</p>
  • int $offset <p>在 str 中使用的第一个位置。</p>
  • int|null $length [可选] <p>返回字符串的最大长度。</p>

返回

  • false|string <p>由 <i>offset</i> 和 <i>length</i> 参数指定的 <i>str</i> 的部分。</p><p>如果 <i>str</i> 的长度小于 <i>offset</i> 个字符,则返回 <b>FALSE</b>。

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

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

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

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

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

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

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>

返回

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

substr_replace(string|string[] $str, string|string[] $replacement, int|int[] $offset, int|int[]|null $length, string $encoding): string|string[]

替换字符串部分中的文本。

示例: UTF8::substr_replace(array('Iñtërnâtiônàlizætiøn', 'foo'), 'æ', 1); // array('Iæñtërnâtiônàlizætiøn', 'fæoo')

来源: https://gist.github.com/stemar/8287074

参数

  • string|string[] $str <p>输入字符串或字符串数组。</p>
  • string|string[] $replacement <p>替换字符串或字符串数组。</p>
  • `int|int[] $offset

    如果起始位置为正,则替换将从字符串中的起始位置的偏移量开始。

    如果起始位置为负,则替换将从字符串末尾开始的起始位置处的字符开始。

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

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

` - `string $encoding [optional]

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

`

返回

  • string|string[] <p>返回结果字符串。如果字符串是数组,则返回数组。</p>

substr_right(string $haystack, string $needle, string $encoding): string

从字符串($haystack)的末尾移除后缀($needle)。

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

参数

  • string $haystack <p>要搜索的字符串。</p>
  • string $needle <p>要搜索的子字符串。</p>
  • string $encoding [optional] <p>设置字符集,例如“mb_”函数</p>

返回

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

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

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

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

参数

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

返回

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

symfony_polyfill_used(): bool

检查是否使用了 symfony-polyfills。

参数:

返回

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

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

参数

  • string $str
  • int $tab_length

返回

  • string

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

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

参数

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

返回

  • string <p>具有所有字符的大写字母的字符串。</p>

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

将字符串转换为 ASCII。

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

参数

  • string $str <p>输入字符串.</p>
  • string $unknown [可选] <p>如果字符未知,则使用字符。默认为 ?</p>
  • bool $strict [可选] <p>使用 PHP-Intl 的 "transliterator_transliterate()" | 警告:性能较差</p>

返回

  • string

to_boolean(bool|int|string $str): bool

参数

  • bool|int|numeric-string $str

返回

  • bool

to_filename(string $str, bool $use_transliterate, string $fallback_char): string

将给定的字符串转换为安全的文件名(并保持字符串大小写)。

参数

  • string $str
  • bool $use_transliterate 不进行转写或转换等操作,默认情况下 - 不安全的字符将简单地替换为连字符。
  • string $fallback_char

返回

  • string

to_int(string $str): int|null

将给定字符串转换为整数,如果字符串不是数字则返回null。

参数

  • string $str

返回

  • int|null <p>如果字符串不是数字则返回null</p>

to_iso8859(string|string[] $str): string|string[]

将字符串转换为“ISO-8859”编码(拉丁-1)。

示例:UTF8::to_utf8(UTF8::to_iso8859(' -ABC-中文空白- ')); // ' -ABC-????- '

参数

  • string|string[] $str

返回

  • string|string[]

to_string(float|int|object|string|null $input): string|null

将给定输入作为字符串返回,如果输入不是int|float|string且没有实现“__toString()”方法则返回null。

参数

  • float|int|object|string|null $input

返回

  • string|null <p>如果输入不是int|float|string且没有“__toString()”方法则返回null</p>

to_utf8(string|string[] $str, bool $decode_html_entity_to_utf8): string|string[]

此函数保留UTF-8字符,同时将几乎所有非UTF-8转换为UTF-8。

  • 它解码UTF-8码点和Unicode转义序列。
  • 它假定原始字符串的编码为WINDOWS-1252或ISO-8859。
  • 警告:它不会删除无效的UTF-8字符,因此在这种情况下您可能需要使用“UTF8::clean()”。

示例:UTF8::to_utf8(["\u0063\u0061\u0074"]); // array('cat')

参数

  • TToUtf8 $str <p>任何字符串或字符串数组.</p>
  • bool $decode_html_entity_to_utf8 <p>如果需要解码HTML实体,则设置为true.</p>

返回

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

to_utf8_string(string $str, bool $decode_html_entity_to_utf8): string

此函数保留UTF-8字符,同时将几乎所有非UTF-8转换为UTF-8。

  • 它解码UTF-8码点和Unicode转义序列。
  • 它假定原始字符串的编码为WINDOWS-1252或ISO-8859。
  • 警告:它不会删除无效的UTF-8字符,因此在这种情况下您可能需要使用“UTF8::clean()”。

示例:UTF8::to_utf8_string("\u0063\u0061\u0074"); // 'cat'

参数

  • string $str <p>任何字符串.</p>
  • bool $decode_html_entity_to_utf8 <p>如果需要解码HTML实体,则设置为true.</p>

返回

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

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

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

信息:这比“trim()”慢。

如果我们使用的是字符串/chars中的≤7位,则我们可以使用原始函数,但检查ASCII(7位)需要更多时间,因此我们可以在这里节省时间。

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

参数

  • string $str <p>要修剪的字符串</p>
  • string|null $chars [optional] <p>可选要剥离的字符</p>

返回

  • string <p>被修剪的字符串.</p>

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

使字符串的第一个字符大写。

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

参数

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

返回

  • string <p>字符大写的结果字符串.</p>

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

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

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

参数

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

返回

  • string

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

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

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

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

参数

  • string $str <p>输入字符串.</p>
  • bool $multi_decode <p>尽可能多次解码。</p>

返回

  • string

utf8_decode(string $str, bool $keep_utf8_chars): string

将UTF-8字符串解码为ISO-8859-1。

示例: UTF8::encode('UTF-8', UTF8::utf8_decode('-ABC-中文空白-')); // '-ABC-????-'

参数

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

返回

  • string

utf8_encode(string $str): string

将ISO-8859-1字符串编码为UTF-8。

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

参数

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

返回

  • string

whitespace_table(): string[]

返回一个包含所有UTF-8空白字符的数组。

参数:

返回

  • string[] 包含所有已知空白字符的数组,以空白类型作为键,如上述URL中定义

words_limit(string $str, int $limit, string $str_add_on): string

限制字符串中的单词数量。

示例: UTF8::words_limit('fòô bàř fòô', 2, ''); // 'fòô bàř'

参数

  • string $str <p>输入字符串.</p>
  • int $limit <p>单词限制,整数形式.</p>
  • string $str_add_on <p>替换被移除的字符串.</p>

返回

  • string

wordwrap(string $str, int $width, string $break, bool $cut): string

将字符串包装到指定的字符数。

示例: UTF8::wordwrap('Iñtërnâtiônàlizætiøn', 2, '
', true)); // 'Iñ

rn
ât


li

ti
øn'

参数

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

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

`

返回

  • string <p>指定列宽包装的给定字符串.</p>

wordwrap_per_line(string $str, int $width, string $break, bool $cut, bool $add_final_break, string|null $delimiter): string

在$limit之后对字符串进行换行,但在之前按"$delimiter"分割字符串。

.. ... 以便我们按行包装。

参数

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

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

` - `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