StringHelper

用于 UTF-8 数据的字符串处理类,封装了 phputf8 库。所有函数都假定 UTF-8 字符串的有效性。

抽象

1.3.0

Joomla 框架

方法

compliant

测试字符串是否符合 UTF-8 规范。

compliant( str) : 
静态

这将比 StringHelper::valid() 快得多,但会通过五和六字节的 UTF-8 序列,这些序列不受 Unicode 支持,因此无法在浏览器中正确显示。换句话说,它不如 StringHelper::valid() 严格,但速度更快。如果您使用它来验证用户输入,您将面临攻击者能够注入 5 字节和 6 字节序列的风险(这可能是一个重大的风险,具体取决于您正在做什么)。

参见 StringHelper::valid
链接

1.3.0

参数

str

string要检查的 UTF-8 字符串

响应

bool如果字符串是有效的 UTF-8,则为 TRUE

increment

递增字符串中的尾随数字。

increment( string, string|null style = 'default',  n) : 
静态

用于在复制对象时轻松创建不同的标签。该方法具有以下样式

默认: “Label” 变成 “Label (2)” 连字符: “Label” 变成 “Label-2”

1.3.0

参数

字符串

string源字符串。

样式

string|null样式(默认值|连字符)。

n

int如果提供,此数字将用于副本,否则它将是“下一个”数字。

响应

string递增后的字符串。

is_ascii

测试字符串是否只包含 7 位 ASCII 字节。

is_ascii( str) : 
静态

您可以使用它来有条件地检查字符串是否需要作为 UTF-8 处理,通过使用本机 PHP 等效项(如果只是 ASCII)来潜在地提高性能,例如;

if (StringHelper::is_ascii($someString)) { // 只是 ASCII - 使用本机 PHP 版本 $someString = strtolower($someString); } else { $someString = StringHelper::strtolower($someString); }

1.3.0

参数

str

string要测试的字符串。

响应

bool如果字符串全部是 ASCII,则为 True

ltrim

UTF-8 感知的 ltrim() 替代方法

ltrim( str, string|bool charlist = false) : 
静态

从字符串开头去除空白(或其他字符)。仅当您提供 charlist 可选参数并且它包含 UTF-8 字符时才需要使用此方法。否则,ltrim 将对 UTF-8 字符串正常工作。

链接

1.3.0

参数

str

string要修剪的字符串

charlist

string|bool要修剪的其他字符的可选 charlist

响应

string修剪后的字符串

ord

UTF-8 感知的 ord() 替代方法

ord( chr) : 
静态

返回字符的 Unicode 序数。

链接

1.4.0

参数

chr

stringUTF-8 编码的字符

响应

int字符的 Unicode 序数

rtrim

UTF-8 感知的 rtrim() 替代方法

rtrim( str, string|bool charlist = false) : 
静态

从字符串末尾去除空白(或其他字符)。仅当您提供 charlist 可选参数并且它包含 UTF-8 字符时才需要使用此方法。否则,rtrim 将对 UTF-8 字符串正常工作。

链接

1.3.0

参数

str

string要修剪的字符串

charlist

string|bool要修剪的其他字符的可选 charlist

响应

string修剪后的字符串

str_ireplace

UTF-8 感知的 str_ireplace() 替代方法

str_ireplace(string|string[] search, string|string[] replace,  str, int|null|bool count = null) : 
静态

str_replace() 的不区分大小写版本

链接

1.3.0

参数

搜索

string|array<string|int, string>要搜索的字符串

替换

string|array<string|int, string>要替换的现有字符串

str

string要替换的新字符串

计数

int|null|bool可选的计数值,供参考传递

响应

stringUTF-8 字符串

str_pad

UTF-8 感知的 str_pad() 替代方法

str_pad( input,  length,  padStr = ' ',  type = STR_PAD_RIGHT) : 
静态

使用另一个字符串将字符串填充到特定长度。$padStr 可能包含多字节字符。

链接

1.4.0

参数

输入

string输入字符串。

长度

int如果该值为负数、小于或等于输入字符串的长度,则不会进行填充。

padStr

string如果填充字符的数量不能被字符串的长度整除,则字符串可能会被截断。

类型

int要应用的填充类型

响应

字符串

str_split

UTF-8 感知的 str_split() 替代方法

str_split( str,  splitLen = 1) : array|string|bool
静态

将字符串转换为数组。

链接

1.3.0

参数

str

string要处理的 UTF-8 编码字符串

splitLen

int要将字符串拆分的字符数量

响应

array<string|int, mixed>|string|bool

strcasecmp

UTF-8/LOCALE 感知的 strcasecmp() 替代方法

strcasecmp( str1,  str2, string|bool locale = false) : 
静态

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

@return

integer < 0 如果 str1 小于 str2;> 0 如果 str1 大于 str2,如果它们相等,则为 0。

链接

1.3.0

参数

str1

string要比较的字符串 1

str2

string要比较的字符串 2

区域设置

string|boolstrcoll 使用的区域设置,或 false 以使用经典比较

响应

混合

strcmp

UTF-8/LOCALE 感知的 strcmp() 替代方法

strcmp( str1,  str2,  locale = false) : 
静态

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

@return

integer < 0 如果 str1 小于 str2;> 0 如果 str1 大于 str2,如果它们相等,则为 0。

链接

1.3.0

参数

str1

string要比较的字符串 1

str2

string要比较的字符串 2

区域设置

mixedstrcoll 使用的区域设置,或 false 以使用经典比较

响应

混合

strcspn

UTF-8 感知的 strcspn() 替代方法

strcspn( str,  mask, int|bool start = null, int|bool length = null) : 
静态

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

链接

1.3.0

参数

str

string要处理的字符串

掩码

string掩码

开始

int|bool可选的起始字符位置(以字符为单位)

长度

int|bool可选长度

响应

intstr1 的初始段的长度,该段不包含 str2 中的任何字符

stristr

UTF-8 感知的 stristr() 替代方法

stristr( str,  search) : string|bool
静态

从 needle 的第一次出现到末尾返回 haystack 的所有内容。Needle 和 haystack 以不区分大小写的方式进行检查,以使用不区分大小写的比较查找字符串的第一次出现。

链接

1.3.0

参数

str

string干草堆

搜索

string

响应

string|bool

strlen

UTF-8 感知的 strlen() 替代方法

strlen( str) : 
静态

返回字符串中的字符数(而不是字节数)。

链接

1.3.0

参数

str

stringUTF-8 字符串。

响应

int字符串中的 UTF-8 字符数量。

strpos

UTF-8 感知的 strpos() 替代方法

strpos( str,  search, int|null|bool offset = false) : int|bool
静态

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

链接

1.3.0

参数

str

string正在检查的字符串

搜索

string正在搜索的字符串

偏移量

int|null|bool可选,指定应执行搜索的位置

响应

int|bool第一次匹配之前的字符数,如果失败,则为 FALSE

strrev

UTF-8 感知的 strrev() 替代方法

strrev( str) : 
静态

反转字符串。

链接

1.3.0

参数

str

string要反转的字符串

响应

string以反向字符顺序排列的字符串

strrpos

UTF-8 感知的 strrpos() 替代方法

strrpos( str,  search,  offset) : int|bool
静态

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

链接

1.3.0

参数

str

string正在检查的字符串。

搜索

string正在搜索的字符串。

偏移量

int从字符串左侧的偏移量。

响应

int|bool最后一次匹配之前的字符数,如果失败,则为 false

strspn

UTF-8 感知的 strspn() 替代方法

strspn( str,  mask, int|null start = null, int|null length = null) : 
静态

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

链接

1.3.0

参数

str

string干草堆

掩码

string掩码

开始

int|null开始可选

长度

int|null长度可选

响应

int

strtolower

UTF-8 感知的 strtolower() 替代方法

strtolower( str) : string|bool
静态

将字符串转换为小写

注意:字符的“大小写”概念只存在于某些字母中,例如拉丁语、希腊语、西里尔语、亚美尼亚语和古代格鲁吉亚语——例如,它不存在于汉语字母中。请参阅 Unicode 标准附件 #21:大小写映射

链接

1.3.0

参数

str

string正在处理的字符串

响应

string|bool小写字符串或 FALSE(如果 UTF-8 无效)

strtoupper

UTF-8 感知的 strtoupper() 替代方法

strtoupper( str) : string|bool
静态

将字符串转换为大写

注意:字符的“大小写”概念只存在于某些字母中,例如拉丁语、希腊语、西里尔语、亚美尼亚语和古代格鲁吉亚语——例如,它不存在于汉语字母中。请参阅 Unicode 标准附件 #21:大小写映射

链接

1.3.0

参数

str

string正在处理的字符串

响应

string|bool大写字符串或 FALSE(如果 UTF-8 无效)

substr

UTF-8 感知的 substr() 替代方法

substr( str,  offset, int|null|bool length = false) : string|bool
静态

返回给定字符偏移量(以及可选长度)的字符串的一部分。

链接

1.3.0

参数

str

string正在处理的字符串

偏移量

intUTF-8 字符偏移量数量(从左侧开始)

长度

int|null|bool可选的偏移量中的 UTF-8 字符长度

响应

string|bool

substr_replace

UTF-8 感知的 substr_replace() 替代方法

substr_replace( str,  repl,  start, int|bool|null length = null) : 
静态

替换字符串部分内的文本。

链接

1.3.0

参数

str

string干草堆

repl

string替换字符串

开始

int开始

长度

int|bool|null长度(可选)

响应

字符串

transcode

转码字符串。

transcode( source,  fromEncoding,  toEncoding) : string|null
静态
链接

1.3.0

参数

来源

string要转码的字符串。

fromEncoding

string源编码。

toEncoding

string目标编码。

响应

string|null转码后的字符串,如果源不是字符串,则为 null。

trim

UTF-8 感知的 trim() 替代方法

trim( str, string|bool charlist = false) : 
静态

从字符串开头和结尾去除空白(或其他字符)。仅当您提供 charlist 可选参数并且它包含 UTF-8 字符时才需要使用此方法。否则,trim 将对 UTF-8 字符串正常工作

链接

1.3.0

参数

str

string要修剪的字符串

charlist

string|bool要修剪的其他字符的可选 charlist

响应

string修剪后的字符串

ucfirst

UTF-8 感知的 ucfirst() 替代方法

ucfirst( str, string|null delimiter = null, string|null newDelimiter = null) : 
静态

将字符串的第一个字符或所有单词的第一个字符转换为大写。

链接

1.3.0

参数

str

string要处理的字符串

分隔符

string|null单词分隔符(null 表示不拆分字符串)

newDelimiter

string|null新的单词分隔符(null 表示等于 $delimiter)

响应

string如果 $delimiter 为 null,则返回第一个字符为大写的字符串(如果适用),否则将字符串视为由分隔符分隔的单词,将 ucfirst 应用于每个单词,并返回带有新分隔符的字符串

ucwords

UTF-8 感知的 ucwords() 替代方法

ucwords( str) : 
静态

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

链接

1.3.0

参数

str

string要处理的字符串

响应

string每个单词的第一个字符为大写的字符串

unicode_to_utf16

将 Unicode 序列转换为 UTF-16 字符串。

unicode_to_utf16( str) : 
静态

1.3.0

参数

str

string要转换的 Unicode 字符串

响应

stringUTF-16 字符串

unicode_to_utf8

将 Unicode 序列转换为 UTF-8 字符串。

unicode_to_utf8( str) : 
静态

1.3.0

参数

str

string要转换的 Unicode 字符串

响应

stringUTF-8 字符串

valid

测试字符串是否为有效的 UTF-8 编码,并受 Unicode 标准支持。

valid( str) : 
静态

注意:此函数已被修改为简单地返回 true 或 false。

作者

[email protected]

链接
参见 compliant

1.3.0

参数

str

stringUTF-8 编码的字符串。

响应

bool如果有效,则为 true

属性

incrementStyles

递增样式。

静态

1.3.0

类型

array<string|int, mixed>