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
string
UTF-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
可选的计数值,供参考传递
响应
string
UTF-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|bool
strcoll 使用的区域设置,或 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- 区域设置
mixed
strcoll 使用的区域设置,或 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
可选长度
响应
int
str1 的初始段的长度,该段不包含 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
string
UTF-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
正在处理的字符串- 偏移量
int
UTF-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 字符串
响应
string
UTF-16 字符串
unicode_to_utf8
将 Unicode 序列转换为 UTF-8 字符串。
unicode_to_utf8( str) :
自 |
1.3.0 |
---|
参数
- str
string
要转换的 Unicode 字符串
响应
string
UTF-8 字符串
valid
测试字符串是否为有效的 UTF-8 编码,并受 Unicode 标准支持。
valid( str) :
注意:此函数已被修改为简单地返回 true 或 false。
作者 | |
---|---|
链接 | |
参见 | compliant |
自 |
1.3.0 |
参数
- str
string
UTF-8 编码的字符串。
响应
bool
如果有效,则为 true
属性
incrementStyles
递增样式。
自 |
1.3.0 |
---|
类型
array<string|int, mixed>