一些本机 PHP 字符串函数具有一个参数,该参数是由一个或多个无序字符组成的字符串(也称为“字符掩码”)。在某些情况下,可以使用双点语法来表示字符范围。
例如:
echo trim('foo24', '0..9');
会打印 foo
,因为 2
和 4
属于 0
到 9
范围内。
还有哪些具有相同功能的其他原生 PHP 字符串函数?
尊重双点范围表达式的本机 PHP 字符串函数:
addcslashes()
(演示)
echo addcslashes('adobe', 'a..e');
// \a\do\b\e
chop()
-- rtrim()
的别名(Demo)
echo chop('adobe', 'a..e');
// ado
ltrim()
(演示)
echo ltrim('adobe', 'a..e');
// obe
rtrim()
(演示)
echo rtrim('adobe', 'a..e');
// ado
str_word_count()
(演示)
var_export(
str_word_count('do not break|on|pipe', 1, '{..}')
);
// ['do', 'not', 'break|on|pipe']
trim()
(演示)
echo trim('adobe', 'a..e');
// o
ucwords()
(演示)
echo ucwords('backdoorman', 'a..e');
// BaCkdOormaN
以下是一些本机函数,其中范围表达式未扩展,但可能是该功能的合理候选者:
strcspn()
(演示)(扩展是合理的)
echo strcspn('cdplayer', 'b..e');
// 6
// 0 if range enabled
strpbrk()
(演示)(扩展是合理的)
echo strpbrk('stackoverflow', 'b..f');
// flow
// ckoverflow if range enabled
strspn()
(演示)(扩展是合理的)
echo strspn('adobe', 'a..e');
// 1
// 2 if range enabled
strtok()
(演示)(扩展是合理的)
echo strtok('toddler', 'a..e');
// toddl
// to if range enabled
strtr()
(演示)(超出主题范围,因为从技术上讲不是字符掩码 - 字符顺序很重要)
echo strtr('adobe', 'a..e', 'A..E');
// AdobE
// ADoBE if range enabled