目录

SPl库 - SPlString

优质
小牛编辑
135浏览
2023-12-01

字符串

EasySwoole 提供了一些常用,方便开发者的基础方法,示例:

  1. $string = new \EasySwoole\Core\Component\Spl\SplString("Hello World");

切割字符串为指定长度的数组:

  1. function split( int $length = 1 ) : SplArray
  1. // 字符串为:Hello World
  2. var_dump($string->split(2));
  3. /* 结果:
  4. array(5) {
  5. [0] =>
  6. string(2) "Ea"
  7. [1] =>
  8. string(2) "sy"
  9. [2] =>
  10. string(2) "Sw"
  11. [3] =>
  12. string(2) "oo"
  13. [4] =>
  14. string(2) "le"
  15. }
  16. */

间隔符拆分:

  1. function explode( string $delimiter ) : SplArray
  1. // 字符串为:Easy,Swoole
  2. var_dump($string->explode(','));
  3. /* 结果:
  4. array(2) {
  5. [0] =>
  6. string(4) "Easy"
  7. [1] =>
  8. string(6) "Swoole"
  9. }
  10. */

截取:

  1. function subString( int $start, int $length ) : SplString

返回 SplArray 的可以用链式操作,下面不再介绍。

如:$string->subString(0,8)->split(2);

  1. // 字符串:EasySwoole
  2. var_dump($string->subString(0,4)->__toString());
  3. // 结果: Easy
  4. $string->split(2);
  5. /* 结果:
  6. array(2) {
  7. [0] =>
  8. string(2) "Ea"
  9. [1] =>
  10. string(2) "sy"
  11. }
  12. */
  13. // 也可以 $string->subString(0,4)->split(2);

编码转换:

  1. function encodingConvert( string $desEncoding, $detectList
  2. = [
  3. 'UTF-8',
  4. 'ASCII',
  5. 'GBK',
  6. 'GB2312',
  7. 'LATIN1',
  8. 'BIG5',
  9. "UCS-2",
  10. ] ) : SplString

UTF8转换便捷方法:

  1. function utf8() : SplString

Unicode转成UTF8:

  1. function unicodeToUtf8() : SplString

转成Unicode:

  1. function toUnicode() : SplString

对比:

  1. function compare( string $str, int $ignoreCase = 0 ) : int
  1. // 字符串:EasySwoole
  2. var_dump($string->compare('EasySwool'));
  3. // 结果:1

移除字符串左边的字符:

  1. function lTrim( string $charList = " \t\n\r\0\x0B" ) : SplString

移除字符串右边的字符:

  1. function rTrim( string $charList = " \t\n\r\0\x0B" ) : SplString

移除字符串两侧的字符:

  1. function trim( string $charList = " \t\n\r\0\x0B" ) : SplString

填充:

  1. function pad( int $length, string $padString = null, int $pad_type = STR_PAD_RIGHT ) : SplString
  1. // 字符串:EasySwoole
  2. var_dump($string->pad(20,'.')->__toString());
  3. // 结果:EasySwoole..........

重复:

  1. function repeat( int $times ) : SplString
  1. // 字符串 EasySwoole
  2. var_dump($string->repeat(2)->__toString());
  3. // 结果:EasySwooleEasySwoole

字符串长度:

  1. function length() : int
  1. // 字符串 EasySwoole
  2. var_dump($string->length());
  3. // 结果:10

全转成大写:

  1. function upper() : SplString
  1. // 字符串 EasySwoole
  2. var_dump($string->upper()->__toString());
  3. // 结果:EASYSWOOLE

全转成小写:

  1. function lower() : SplString
  1. // 字符串 EasySwoole
  2. var_dump($string->lower()->__toString());
  3. // 结果:easyswoole

剥去字符串中的 HTML 标签:

  1. function stripTags( string $allowable_tags = null ) : SplString
  1. // 字符串 <html>EasySwoole</html>
  2. var_dump($string->stripTags()->__toString());
  3. // 结果:EasySwoole

替换:

  1. function replace( string $find, string $replaceTo ) : SplString
  1. // 字符串 EasySwoole
  2. var_dump($string->replace("Easy","2018年2月16日,新年快乐Easy")->__toString());
  3. // 结果:2018年2月16日,新年快乐EasySwoole

两者之间的:

  1. function between( string $startStr, string $endStr ) : SplString
  1. // 字符串 EasySwoole
  2. var_dump($string->between("Ea","le")->__toString());
  3. // 结果:sySwoo

正则匹配:

  1. function regex( $regex, bool $rawReturn = false )
  1. // 字符串:http://www.easyswoole.com/index.html
  2. var_dump($string->regex("@^(?:http://)?([^/]+)@i"));
  3. // 结果:http://www.easyswoole.com

是否存在:

  1. function exist( string $find, bool $ignoreCase = true ) : bool
  1. // 字符串 http://www.easyswoole.com/index.html
  2. var_dump($string->exist("easyswoole"));
  3. // 结果:true

可以撸的烤串:

  1. function kebab() : SplString
  1. // 字符串 KaoChuanKaoChuanKaoChuan
  2. var_dump($string->kebab()->__toString());
  3. // 结果:kao-chuan-kao-chuan-kao-chuan

扭一扭:

  1. function snake( string $delimiter = '_' ) : SplString
  1. // 字符串 PiGuNiuYiNiu
  2. var_dump($string->snake('_')->__toString());
  3. // 结果:pi_gu_niu_yi_niu

起起伏伏:

  1. function studly() : SplString
  1. // 字符串 User_info-Profile-goods_message
  2. var_dump($string->studly()->__toString());
  3. // 结果:UserInfoProfileGoodsMessage

驼峰:

  1. function camel() : SplString
  1. // 字符串 User_info_Profile_goods_message
  2. var_dump($string->camel()->__toString());
  3. // 结果:userInfoProfileGoodsMessage

用数组逐个字符:

  1. function replaceArray( string $search, array $replace ) : SplString
  1. // 字符串 你好啊,你在吗
  2. var_dump($string->replaceArray('你',['我','他'])->__toString());
  3. // 结果:我好啊,他在吗

替换字符串中给定值的第一次出现:

  1. function replaceFirst( string $search, string $replace ) : SplString
  1. // 字符串 你好啊,你在吗
  2. var_dump($string->replaceArray('你','我')->__toString());
  3. // 结果:我好啊,你在吗

替换字符串中给定值的最后一次出现:

  1. function replaceLast( string $search, string $replace ) : SplString
  1. // 字符串 你好啊,你在吗,你在吗
  2. var_dump($string->replaceLast('你','他')->__toString());
  3. // 结果:你好啊,你在吗,他在吗

以一个给定值的单一实例开始一个字符串:

  1. function start( string $prefix ) : SplString
  1. // 字符串 user_table
  2. var_dump($string->start('easyswoole_')->__toString());
  3. // 结果:easyswoole_user_table

在给定的值之后返回字符串的其余部分:

  1. function after( string $search ) : SplString
  1. // 字符串 easyswoole.user.png
  2. var_dump($string->after('.')->__toString());
  3. // 结果:user.png

在给定的值之前获取字符串的一部分:

  1. function before( string $search ) : SplString
  1. // 字符串 easyswoole.jpg
  2. var_dump($string->before('.')->__toString());
  3. // 结果:easyswoole

确定给定的字符串是否以给定的子字符串结束:

  1. function endsWith( $needles ) : bool
  1. // 字符串 easyswoole.jpg
  2. var_dump($string->endsWith(['png','gif','jpg']));
  3. // 结果:true

确定给定的字符串是否从给定的子字符串开始

  1. function startsWith( $needles ) : bool
  1. // 字符串 easyswoole.jpg
  2. var_dump($string->startsWith(['e','easyswoole','es']));
  3. // 结果:true