conkal / ztring
字符串操作库
Requires
- php: >=5.6.0
- ext-mbstring: *
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: >=5.7
This package is auto-updated.
Last update: 2024-09-08 17:12:22 UTC
README
一个PHP字符串操作库。
安装
composer require conkal/ztring
use Conkal\ztring;
面向对象和链式调用
该库提供了面向对象的链式调用方法,如下所示
use Conkal\ztring; echo ztring('this is test')->collapseWhitespace()->swapCase(); // THIS IS TEST
Conkal\ztring 有一个 __toString() 方法,当对象在字符串上下文中使用时,返回当前字符串,即: (string) ztring::create('foo') // 'foo'
实现接口
Conkal\ztring 实现了 IteratorAggregate 接口,这意味着可以使用类的实例进行 foreach 循环。
$string = \Conkal\ztring::create('test'); foreach ($string as $char) { echo $char; } // 'test'
它还实现了 Countable 接口,可以使用 count() 获取字符串中的字符数。
$string = \Conkal\ztring::create('test'); count($string); // 3
此外,实现了 ArrayAccess 接口。因此,可以使用 isset() 检查特定索引处的字符是否存在。由于 Conkal\ztring 是不可变的,因此对 offsetSet 或 offsetUnset 的调用将抛出异常。已实现 offsetGet,它接受正索引和负索引。无效索引会导致 OutOfBoundsException。
$string = \Conkal\ztring::create('test'); echo $string[1]; // 't'
类方法
create(string $str)
创建一个 ztring 对象,并分配字符串属性。在分配之前,$str 被转换为字符串。
$string = \Conkal\ztring::create('test'); // 'test'
实例方法
append(string $string)
返回一个新的字符串,其中包含附加的 $string。
ztring('This is a ')->append('test.'); // This is a test.
at(int $index)
返回 $index 处的字符,索引从 0 开始。
ztring('This is a test')->at(0); // 'T' ztring('This is a test')->at(1); // 'h' ztring('This is a test')->at(-1); // 't'
camelcase()
返回字符串的 camelCase 版本。修剪周围的空格,将数字、空格、破折号和下划线后的字母大写,并删除空格、破折号和下划线。
ztring('Camel-Case')->camelcase(); // 'camelCase'
chars()
返回一个由字符串中的字符组成的数组。
ztring('test')->chars(); // ['t','e','s','t']
collapseWhitespace()
修剪字符串,并将连续的空白字符替换为单个空格。这包括制表符和换行符,以及多字节空白,如细空格和表意空格。
ztring('This is a test')->collapseWhitespace(); // 'This is a test'
endsWith(string $substring [, boolean $caseSensitive = true ])
如果字符串以 $substring 结尾,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $caseSensitive 设置为 false 来使比较不区分大小写。
ztring('this is a test')->endsWith('test'); // true
ensureLeft(string $substring)
确保字符串以 $substring 开始。如果不这样做,它会添加前缀。
ztring('foobar')->ensureLeft('http://'); // 'http://foobar'
ensureRight(string $substring)
确保字符串以 $substring 结尾。如果不这样做,它会添加后缀。
ztring('foobar')->ensureRight('.com'); // 'foobar.com'
firstChar()
返回字符串的前 $n 个字符。
ztring('test')->firstChar(); // 't'
firstXChars()
返回字符串的前 $n 个字符。
ztring('test')->first3Chars(); // 'tes'
lastChar()
返回字符串的最后 $n 个字符。
ztring('test')->lastChar(); // 't'
lastXChars()
返回字符串的最后 $n 个字符。
ztring('test')->last3Chars(); // 'est'
length()
返回字符串的长度。PHP 的 mb_strlen() 函数的别名。
ztring('fòôbàř')->length(); // 6
lowerCaseFirst()
将提供的字符串的第一个字符转换为小写。
ztring('Test')->lowerCaseFirst(); // 'test'
prepend(string $string)
返回以 $string 开头的字符串。
ztring('bàř')->prepend('fòô'); // 'fòôbàř'
removeLeft(string $substring)
返回一个新字符串,其中已移除前缀 $substring(如果存在)。
replace(string $search, string $replacement)
将 $str 中所有出现的 $search 替换为 $replacement。
ztring('This is test.')->replace('This ', 'These '); // 'These is test.'
reverse()
返回一个反转的字符串。strrev() 的多字节版本。
ztring('fòôbàř')->reverse(); // 'řàbôòf'
random()
创建一个随机字符串
\Conkal\ztring::random();
slug( [string $separator = '-'])
ztring('This is a testğüşçö')->slug(); // 'this-is-a-test'
startsWith(string $substring [, boolean $caseSensitive = true ])
如果字符串以 $substring 开始,则返回 true,否则返回 false。默认情况下,比较是区分大小写的,但可以通过将 $caseSensitive 设置为 false 来使比较不区分大小写。
ztring('This is a test')->startsWith('This', false); // true
substr(int $start [, int $length ])
从指定位置 $start 开始返回长度为 $length 的子字符串。与 mb_substr() 函数不同,如果提供 $length 为 null,则返回字符串的剩余部分,而不是空字符串。
ztring('This is a test')->substr(0, 4); // 'This'
swapCase()
返回字符串的大小写交换版本。
ztring('Test')->swapCase(); // 'tEST'
titleCase()
返回一个首字母大写的修剪后的字符串。
ztring('this is a test')->titleCase(); // 'This Is A Test'
ascii($languageSpecific)
返回字符串的 ASCII 版本。
$languageSpecific = [ 'ğ' => 'g', 'ü' => 'u', 'ı' => 'i', 'ş' => 's', 'ç' => 'c', 'ö' => 'o', 'Ğ' => 'G', 'Ü' => 'U', 'Ş' => 'S', 'Ö' => 'O', 'Ç' => 'C', 'İ' => 'I', ]; ztring('türkçe')->ascii($languageSpecific); // 'turkce'
toBoolean()
返回给定逻辑字符串值的布尔表示形式。例如,'true'、'1'、'on' 和 'yes' 将返回 true。'false'、'0'、'off' 和 'no' 将返回 false。在所有情况下,大小写将被忽略。
ztring('OFF')->toBoolean(); // false
toLowerCase()
将字符串中的所有字符转换为小写。PHP 的 mb_strtolower() 的别称。
ztring('THIS')->lowerCase(); // 'this'
toTitleCase()
将字符串中每个单词的第一个字符转换为大写。
ztring('this is a test')->titleCase(); // 'Fòô Bàř'
uppercase()
将字符串中的所有字符转换为大写。PHP 的 mb_strtoupper() 的别称。
ztring('test')->uppercase(); // 'TEST'
trim([, string $chars])
返回一个从字符串的开始和结束处移除空白的字符串。支持移除 Unicode 空白。接受一个可选的字符字符串,用于替代默认值。
ztring(' test ')->trim(); // 'test'
upperCaseFirst()
将提供的字符串的第一个字符转换为大写。
ztring('this is a test')->upperCaseFirst(); // 'This is a test'
words()
返回数组形式的单词。
ztring('this is a test')->words(); // ['This', 'is', 'a', 'test']
sanitize()
移除所有特殊字符。
ztring('this is a test?--*üğişçö')->sanitize(); // 'this is a test'
acronym()
创建一个缩写。
ztring('This is a test')->acronym(); // 'TIAT' ztring('This is a test')->acronym('.'); // 'T.I.A.T.'
number()
仅返回 0-9 之间的数字。
ztring('1---*?=)(2hjkghkj,iüğ\ş3/*-')->number(); //123
测试
从项目目录中,可以使用 phpunit 运行测试。
许可协议
在 MIT 许可证下发布 - 有关详细信息,请参阅 LICENSE.txt。