jasonlam604 / stringizer
Stringizer 是一个支持方法链和多字节处理的 PHP 字符串操作库
Requires
- php: >=5.6.0
- cocur/slugify: 3.2.*
Requires (Dev)
- phpunit/phpunit: 5.3.*
README
Stringizer
Stringizer 是一个支持方法链和多字节处理的 PHP 字符串操作库
基本功能
字符串函数
- Base64Encode
- Base64Decode
- Between
- Camelize
- CamelToSnake
- CharAt
- Chars
- ChompLeft - 已弃用
- ChompRight - 已弃用
- ChopLeft
- ChopRight
- CollapseWhitespace
- Concat
- Contains & Contains Case-Insensitive
- Contains Count & Count Case-Insensitive
- Dasherize
- Delete
- EndsWith
- EnsureLeft
- EnsureRight
- First
- HasLowerCase
- HasUpper
- HashCode
- IndexOf & IndexOf Case-Insensitive
- IsAscii
- IsAlpha
- IsAlphaNumeric
- IsAlphaNumeric with Space
- IsAlphaNumeric with Space and Dash
- IsBase64
- IsBlank
- IsDate
- IsDecimal
- IsEmail
- IsEmpty
- IsHash
- IsHexColor
- IsHexDecimal
- IsIsbn10
- IsIsbn10
- IsIpv4
- IsIpv6
- IsJson
- IsNumber
- IsMultiByte
- IsLatitude
- IsLongitude
- IsRgbColor
- IsSemver
- IsUrl
- Join
- Last
- LastIndexOf & LastIndexOf Case-Insensitive
- Length
- LineCount
- Lowercase
- Lowercase First
- Pad Both
- Pad Left
- Pad Right
- RandomAlpha
- RandomNumeric
- RandomAlphaNumeric
- Replace Accents
- Remove Non Ascii
- Remove Whitespace
- Repeat
- Replace & Replace Case-Insensitive
- Reverse
- SentenceCount
- Split
- StartsWith
- Strip Punctuation
- Strip Tags
- Sub String
- SwapCase
- ToBoolean
- Trim
- Trim Left
- Trim Right
- Truncate
- Truncate Match & Truncate Match Case-Insensitive
- Uppercase
- Uppercase Words
- Width
- WordCount
概述
Stringizer 是由现有的 PHP 多字节字符串函数和各种 Stackoverflow.com 上的字符串操作解决方案组成的字符串库。目的是节省您自己查找字符串操作解决方案的时间,并提供方法链的便利。2016 年 6 月获得 PHPClasses.org 的创新奖。
PSR 合规性和代码质量
- PSR-0: 自动加载标准
- PSR-1: 基本编码标准
- PSR-2: 编码风格
- PSR-4: 自动加载器
- Semver 版本控制
- 100% 单元测试覆盖率,由 Coveralls.io 提供
- SensioLabsInsight 的白金代码质量分析
- 使用 Travis CI 进行持续集成和回归单元测试
关键亮点
- 内置多字节支持,适用于所有适用和可能的情况
- 函数链
- 在某些情况下,省去您尝试找出正确正则表达式解决方案的麻烦
版本
安装
建议您使用 Composer 安装 Stringizer。
使用 composer 手动安装
$ composer require jasonlam604/stringizer "^2.14.0"
使用 composer.json 文件
"require": { "jasonlam604/stringizer": "^2.14.0" }
这将安装 Stringizer 及所有必需的依赖项。Stringizer 需要 PHP 5.6.0 或更高版本。
用法
示例用法
<?php // Composer Autoloader require 'vendor/autoload.php'; use Stringizer\Stringizer; $s = new Stringizer("myapp"); $s->ensureRight("/"); // The following outputs: myapp/ echo $s->getString();
测试
要执行测试套件,您需要phpunit。
$ phpunit
提交问题
请随意提交任何问题、错误或建议!
贡献
接受Pull-Requests!
鸣谢
许可证
Stringizer遵循MIT许可。有关更多信息,请参阅许可文件。
字符串函数
base64Decode
Base64解码字符串
$s = new Stringizer("44GT44KT44Gr44Gh44Gv"); $s->base64Decode(); // こんにちは
base64Encode
Base64编码字符串
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->base64Encode(); // yJjFpsWXw43DscSdw6x6xJXFlQ==
between
提取左右字符串之间的字符串。
$s = new Stringizer("<div>ȘŦŗÍñĝìzĕŕ</div>"); $s->between("<div>", "</div>"); // ȘŦŗÍñĝìzĕŕ
camelize
删除任何下划线或破折号,并将字符串转换为驼峰式。
$s = new Stringizer("data_rate"); $s->camelize(); // dataRate
camelToSnake
将驼峰式转换为蛇形命名。
$s = new Stringizer("helloSŦŗÍñĝìzĕŕ"); $s->camelToSnake(); // hello_sŦŗÍñĝìzĕŕ
charAt
在字符串中获取特定位置的字符,其中第一个位置被视为0。
$s = new Stringizer("Foo Bar Fizz Buzz"); $s->charAt(4); // B
chars
返回一个数组,其中每个索引包含一个字符,该字符串作为给定字符串。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->chars(); // an array made up 10 indexes ["Ș","Ŧ","ŗ","Í","ñ","ĝ","ì","z","ĕ","ŕ"]
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->charAt(1); // Ŧ
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->charAt(0); // S
chompLeft
已弃用 - 从字符串开始删除前缀。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->chompLeft("ȘŦŗÍñĝ"); // ìzĕŕ
chompRight
已弃用 - 从字符串开始删除后缀。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->chompRight("ìzĕŕ"); // ȘŦŗÍñĝ
chopLeft
从字符串开始删除前缀。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->chopLeft("ȘŦŗÍñĝ"); // ìzĕŕ
chopRight
从字符串开始删除后缀。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->chopRight("ìzĕŕ"); // ȘŦŗÍñĝ
collapseWhitespace
删除多余的空白字符,保留一个空白字符,其中有多于一个空白字符。
$s = new Stringizer(""ȘŦŗÍñĝ\n\nìzĕŕ \n\t \r""); $s->concat("collapseWhitespace") // ȘŦŗÍñĝ ìzĕŕ
concat
合并字符串值。
在字符串末尾合并。
$s = new Stringizer("fizz"); $s->concat(" buzz") // fizz buzz
通过在可选的第二参数中传递布尔值 true,在字符串开头合并,以通过传递 可选 的布尔值。
$s = new Stringizer(" buzz"); $s->concat("fizz",true) // fizz buzz
contains
在另一个字符串中搜索字符串,如果找到则返回true,否则返回false
$s = new Stringizer("fizz buzz foo bar"); $s->contains("buzz"); // true
$s = new Stringizer("fizz buzz foo bar"); $s->contains("Buzz"); // false, case sensitive
$s = new Stringizer("fizz buzz foo bar"); $s->containsIncaseSensitive("Buzz"); // true, case insensitive
containsCount
统计字符串出现次数
$s = new Stringizer("fizz buzz fizz buzz fizz buzz"); $s->containsCount("buzz"); // 3
$s = new Stringizer("fizz buzz fizz buzz fizz buzz"); $s->containsCount("nomatch"); // 0
$s = new Stringizer("fizz buzz foo bar"); $this->assertEquals(0, $s->containsCount("BUZZ")); // 0, case sensitive no match found
$s = new Stringizer("fizz buzz foo bar"); $s->containsCountIncaseSensitive("BUZZ"); // 1, case in-sensitive 1 match found
$s = new Stringizer("文字列のそれ 文字列のそれ 文字列のそれ 文字列のそれ"); $this->assertEquals(4, $s->containsCount("れ")); // 4
dasherize
拆分驼峰式字符串并用破折号分隔
$s = new Stringizer("dataRate"); $s->dasherize(); // data-rate
delete
删除str中匹配模式的runes,类似于Ruby中的delete string功能
$s = new Stringizer("Fizz 列Fizz列 Fizz"); $s->delete("列"); //Fizz Fizz Fizz
endsWith
检查字符串是否以给定的后缀结束。
$s = new Stringizer("Fizz Buzz"); $s->endsWith("zz"); // true
$s = new Stringizer("文字列のそれ"); $s->endsWith("れ"); // true
$s = new Stringizer("文字列のそれ"); $s->endsWith("れれれれ"); // false
ensureLeft
确保字符串以前缀开始
$s = new Stringizer("/myapp"); $s->ensureLeft("/"); // /myapp
ensureRight
确保字符串以后缀结束
$s = new Stringizer("/myapp"); $s->ensureRight("/"); // /myapp/
first
从字符串开头获取一个部分,部分的大小由给定的指示值确定。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->first(6); // ȘŦŗÍñĝ
hashCode
确定字符串的哈希码,算法与Java String类中可用的hashCode方法匹配
$s = new Stringizer("Hello, World"); $s->hashCode(); // -505841268
hasLowercase
检查值是否只包含小写字母。
$s = new Stringizer("stŗiñĝìzĕŕ"); $s->hasLowercase()); // true
$s = new Stringizer("sTŗiñĝìzĕŕ"); $s->hasLowercase()); // false
hasUppercase
检查值是否只包含大写字母。
$s = new Stringizer("STÃÑ"); $s->hasUppercase()); // true
$s = new Stringizer("StÃÑ"); $s->hasUppercase()); // false
indexOf
在另一个字符串中查找字符串的第一个出现位置。
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->indexOf("Foo"); // 10
如果没有找到匹配项,则返回布尔值false。
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->indexOf("bad"); // false
有一个可选的第二个参数,位置偏移量,其中从最左边的值开始是索引0。
$s = new Stringizer("Foo Buzz Foo Bar"); $s->indexOf("Foo", 0); // 0, since offset starts at zero the first Foo is found at index 0 $s->indexOf("Foo", 1); // 9, since offset is past zero the next available match is at index 9
MultiByte
$s = new Stringizer("fòô bàř"); $s->indexOf("bàř"); // 4
不区分大小写
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->indexOfCaseInsensitive("foo"); // 10
isAscii
检查值是否只包含有效的ASCII值。可选参数允许只允许可打印字符
$s = new Stringizer("abcdefghi....12334567890....ABC..XY!!!@#$%^&*()_+=-<>?:;/.,~][}{\|'"); $s->isAscii(); // true
$s = new Stringizer("\x19test\x7F"); $s->isAscii(); // true $s->isAscii(true); // false
isAlpha
检查值是否只包含字母。
$s = new Stringizer("FooBar"); $s->isAlpha(); // true
$s = new Stringizer("Foo Bar"); $s->isAlpha(); // false
isAlphaNumeric
检查值是否只包含字母数字。
$s = new Stringizer("F00Bar"); $s->isAlphaNumeric(); // true
$s = new Stringizer("F00 Bar"); $s->isAlphaNumeric(); // false
isAlphaNumericSpace
检查值是否只包含字母数字,包括空格。
$s = new Stringizer("F00 Bar"); $s->isAlphaNumericSpace(); // true
$s = new Stringizer("F00 Bar !"); $s->isAlphaNumericSpace(); // false
isAlphaNumericSpaceDash
检查值是否只包含字母数字,包括空格和破折号。
$s = new Stringizer("Marie-Anne Lucy"); $s->isAlphaNumericSpaceDash(); // true
$s = new Stringizer("Marie-Ann Lucy!"); $s->isAlphaNumericSpaceDash(); // false
isBase64
检查值是否是有效的Base64字符串
// Decoded value is ȘŦŗÍñĝìzĕŕ $s = new Stringizer("yJjFpsWXw43DscSdw6x6xJXFlQ=="); $s->isBase64(); // true
isBlank
检查值是否为空(同isEmpty),如果字符串只包含空白,则视为空。
$s = new Stringizer("\n \n\r\t "); $s->isBlank(); // true
isDate
检查值是否是有效的日期,基于PHP函数strtotime。
要求,必须首先设置默认时区
date_default_timezone_set('America/Vancouver'); $s = new Stringizer("2015-03-15"); $s->isDate(); // true
date_default_timezone_set('America/Vancouver'); $s = new Stringizer("January 1st"); $s->isDate(); // true
isDecimal
检查值是否包含小数值,整数被认为是有效的。
$s = new Stringizer("19.99"); $s->isDecimal(); // true
$s = new Stringizer("19"); $s->isDecimal(); // true
$s = new Stringizer("19x"); $s->isDecimal(); // false
isEmail
检查值是否是有效的电子邮件。
$s = new Stringizer("John.Doe@fake.com"); $s->isEmail(); // true
$s = new Stringizer("John.Doe@fake@.com"); $s->isEmail(); // false
isEmpty
检查值是否为空,如果字符串只包含空白,则视为空。
$s = new Stringizer("\n \n\r\t "); $s->isEmpty(); // true
isHash
检查值是否为空,如果字符串只包含空白,则视为空。
$s = new Stringizer("3ca25ae354e192b26879f651a51d92aa8a34d8d3"); $s->isHash("sha1"); // true
$s->setString("3ca25ae354e192b26879f651a51d92aa8a34d8d3"); $s->isHash("Tiger160"); // true
$s->setString("579282cfb65ca1f109b78536effaf621b853c9f7079664a3fbe2b519f435898c"); $this->assertEquals(true, $s->isHash("sha256"); // true
$s->setString("bf547c3fc5841a377eb1519c2890344dbab15c40ae4150b4b34443d2212e5b04aa9d58865bf03d8ae27840fef430b891"); $this->assertEquals(true, $s->isHash("sha384"); // true
$s->setString("45bc5fa8cb45ee408c04b6269e9f1e1c17090c5ce26ffeeda2af097735b29953ce547e40ff3ad0d120e5361cc5f9cee35ea91ecd4077f3f589b4d439168f91b9"); $this->assertEquals(true, $s->isHash("sha512"); // true
$s->setString("46fc0125a148788a3ac1d649566fc04eb84a746f1a6e4fa7"); $this->assertEquals(true, $s->isHash("tiger192"); // true
isHexColor
检查值是否是有效的十六进制颜色。
$s = new Stringizer("CCDDEE"); $s->isHexColor(); // true
$s = new Stringizer("#CCDDEE"); $s->isHexColor(); // false
$s = new Stringizer("ZZZZZZ"); $s->isHexColor(); // false
isHexDecimal
检查值是否是十六进制。
$s = new Stringizer("AB10BC99"); $s->isHexDecimal(); // true
isIsbn10
判断值是否为有效的ISBN10
$s = new Stringizer("ISBN:0-306-40615-2"); $s->isIsbn10() // true
isIsbn13
判断值是否为有效的ISBN13
$s = new Stringizer("ISBN:979-1-090-63607-1"); $s->isIsbn13() // true
isIPv4
检查值是否为有效的IP地址,IPv4。
$s = new Stringizer("192.168.1.1"); $s->isIpv4() // true
isIPv6
检查值是否为有效的IP地址,IPv6。
$s = new Stringizer("2001:cdba:0000:0000:0000:0000:3257:9652"); $s->isIpv6() // true
isJson
判断值是否为有效的JSON
$s = new Stringizer("{\"foo\" : { \"bar\" : \"Hello\", \"baz\" : [ \"quuz\", \"norf\" ] }}"); $s->isJson() // true
isNumber
检查值是否为整数,可以是负数但不能是十进制数。
$s = new Stringizer("1234"); $s->isNumber() // true
isMultiByte
检查值是否为多字节
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->isMultiByte() // true
$s = new Stringizer("Stringizer"); $s->isMultiByte() // false
isLatitude
检查值是否为有效的纬度值
$s = new Stringizer("37.138"); $s->isLatitude() // true
$s = new Stringizer("-91"); $s->isLatitude() // false
isLongitude
检查值是否为有效的经度值
$s = new Stringizer("190"); $s->isLongitude() // true
$s = new Stringizer("191"); $s->isLongitude() // false
isRgbColor
检查值是否为有效的RGB颜色
$s = new Stringizer("rgb(255,255,255)"); $s->isRgbColor() // true
isSemver
检查值是否为有效的semver格式,见 http://semver.org/
$s = new Stringizer("FooBar"); $s->isSemver(); // false
$s = new Stringizer("1.0.0"); $s->isSemver(); // true $s->setString("1.0.0-3.14.6"); $s->isSemver(); // true $s->setString("0.0.1-beta"); $s->isSemver(); // true
$s = new Stringizer("1.0"); $s->isAlpha(); // false
isUrl
检查值是否包含有效的URL
$s = new Stringizer("https://github.com"); $s->isUrl(); // true
join
连接a中的元素以创建单个字符串。结果字符串中的元素之间放置分隔符字符串sep。如果存在现有值,则将其覆盖。默认分隔符为逗号,如果不需要分隔符,则使用空字符串。
使用默认分隔符逗号
$s = new Stringizer("original-string-overwritten"); $s->join(array("Hello","World","Again")); // Hello,World,Again
使用竖线作为分隔符
$s = new Stringizer(""); $s->join(array("こ","ん","に","ち","は"), "|") // こ|ん|に|ち|は
无分隔符,使用空字符串
$s = new Stringizer(""); $s->join(array("こ","ん","に","ち","は"), "") // こんにちは
last
从字符串的末尾获取一段,段的大小由给定的指示值确定。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->last(4); // ìzĕŕ
lastIndexOf
查找字符串在另一个字符串中最后一次出现的位置
$s = new Stringizer("Foo Buzz Foo Bar"); $s->lastIndexOf("Foo"); // 9
如果没有找到匹配项,则返回布尔值false。
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->lastIndexOf("bad"); // false
有一个可选的第二个参数,位置偏移量,其中从最左边的值开始是索引0。
$s = new Stringizer("Foo Buzz Foo Bar"); $s->lastIndexOf("Foo", 0); // 9 $s->lastIndexOf("Foo", 4)); // 9 $s->lastIndexOf("Foo", 10)); // false
MultiByte
$s = new Stringizer("fòô bàř fòô bàř fòô bàř"); $s->lastIndexOf("fòô"); // 16
不区分大小写
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->lastIndexOf("foo"); //false $s->lastIndexOfCaseInsensitive("foo"); // 10
length
查找字符串的长度
$s = new Stringizer("FizzBuzz"); $s->length(); // 8
Multibyte
$s = new Stringizer("キラキラした"); $s->length(); // 6
lineCount
基于换行符(\n)统计行数。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ\nȘŦŗÍñĝìzĕŕ\nȘŦŗÍñĝìzĕŕ"); $s->lineCount(); // 2
lowercase
确保字符串全部为小写
$s = new Stringizer("FiZZ"); $s->lowercase(); // fizz
lowercaseFirst
字符串的第一个字母是小写的
$s = new Stringizer("FiZz"); $s->lowercaseFirst(); // fIZZ
padBoth
在字符串两侧用指示值填充
用偶数个字符填充
$s = new Stringizer("fizz"); $s->padBoth("x", 10); // xxxfizzxxx
用奇数个字符填充,额外的字符被添加到字符串的末尾
$s = new Stringizer("fizz"); $s->padBoth("x", 11); // xxxfizzxxxx
padLeft
在左侧用指定的字符串值和填充次数填充字符串
$s = new Stringizer("10"); $s->padLeft("0", 5); // 00010
padRight
在右侧用指定的字符串值和填充次数填充字符串
$s = new Stringizer("Alien"); $this->assertEquals("Alien ", $s->padRight(" ", 10)); // "Alien "
randomAlpha
生成一个随机字母值,默认长度为10个字符。
$s = new Stringizer(""); $s->randomAlpha(); // aYvPXitjCJ
$s = new Stringizer(""); $s->randomAlpha(20); // cmbOUofxAvWeyMGgPHK
randomNumeric
生成一个只包含数字的随机字符串值,默认长度为10个字符。请注意,这是一个字符串值,因为如果不是,则值(如前导零的值0123456789)将变为123456789(作为int类型);但是,那么它的长度将不是10个字符(或所需的指示预期长度)
$s = new Stringizer(""); $s->randomNumeric(); // 8277761361
randomAlphaNumeric
生成一个随机的字母数字值,默认长度为10个字符。
$s = new Stringizer(""); $s->randomAlphanumeric(); // w5quanvlUP
repeat
返回重复n次的字符串。
$s = new Stringizer("FizzöBuzz"); $s->repeat(2); // FizzöBuzzFizzöBuzz
$s = new Stringizer("こ"); $s->repeat(5); // こここここ
replaceAccents
将带重音的字符替换为不带重音的同字符。
$s = new Stringizer("FizzöBuzz Fizz Buzz Fizz Buzzé"); $s->replaceAccents(); // FizzoeBuzz Fizz Buzz Fizz Buzze
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ"); $s->replaceAccents(); // STrIngizer
removeAscii
删除非ASCII字符
$s = new Stringizer("FizzöBuzz Fizz Buzz Fizz Buzzé"); $s->removeNonAscii(); // FizzBuzz Fizz Buzz Fizz Buzz
removeWhitespace
从字符串中删除任何空白字符(在前面、后面以及中间)
$s = new Stringizer("Fizz Buzz Fizz Buzz Fizz Buzz"); $s->removeWhitespace(); // FizzBuzzFizzBuzzFizzBuzz
$s = new Stringizer(" Ș Ŧ ŗ Í ñ ĝ ì z ĕ ŕ "); $s->removeWhitespace(); // ȘŦŗÍñĝìzĕŕ
replace
匹配并替换字符串
$s = new Stringizer("Fizz Buzz Fizz Buzz Fizz Buzz"); $s->replace("Buzz", "Bar"); // Fizz Bar Fizz Bar Fizz Bar
多重替换
$s = new Stringizer("Fizz Buzz Fizz Buzz Fizz Buzz"); $s->replace(array("Fizz","Buzz"), array("Foo","Bar")); // Foo Bar Foo Bar Foo Bar
无匹配,大小写不敏感
$s = new Stringizer("Fizz Buzz Fizz Buzz Fizz Buzz"); $s->replace("buzz", "bar"); // Fizz Buzz Fizz Buzz Fizz Buzz
匹配,大小写不敏感
$s = new Stringizer("Fizz Buzz Fizz Buzz Fizz Buzz"); $s->replaceIncaseSensitive("buzz", "bar"); // Fizz bar Fizz bar Fizz bar
MultiByte
$s = new Stringizer("Fizz列Buzz列Fizz列Buzz列Fizz列Buzz"); $s->replace("列", " "); // Fizz Buzz Fizz Buzz Fizz Buzz
reverse
$s = new Stringizer("mood"); $s->reverse(); // doom
MultiByte
$s = new Stringizer("文字列のそれ"); $s->reverse(); // れその列字文
sentenceCount
根据以下之一结束的句子统计句子数:. ! 或 ?
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ jumped over the stringy stick. ȘŦŗÍñĝìzĕŕ jumped over the stringy stick again! Or did it?"); $s->sentenceCount(); // 3
split
将字符串分解为数组,默认分隔符为逗号
$s = new Stringizer("Fizz Buzz"); $array = $s->split(" "); // array( 0 => "Fizz", 1 => "Buzz")
$s = new Stringizer("文字列のそれ"); $array = $s->split("の"); // array( 0 => "文字列", 1 => "それ)
startsWith
检查字符串是否以指定的后缀开始。
$s = new Stringizer("Fizz Buzz"); $s->startsWith("Fizz B"); // true
$s = new Stringizer("文字列のそれ"); $s->startsWith("文"); // true
$s = new Stringizer("文字列のそれ"); $s->startsWith("文文文文"); // false
stripPunctuation
删除所有标点符号
$s = new Stringizer("Hello World! It's me #stringizer"); $s->stripPunctuation(); // Hello World Its me stringizer
$s = new Stringizer("*-=!'\",?!Hello* World]["); $s->stripPunctuation(); // Hello World
stripTags
从字符串中删除HTML和PHP标签
$s = new Stringizer("<html>Hello</html>"); $s->stripTags(); // Hello
$s = new Stringizer("<html><b>こんにちは世界</b></html>"); $s->stripTags(); // こんにちは世界
可选的第二个参数忽略标签(不要删除的标签)
$s = new Stringizer("<html>Hello <b>World</b></html>"); $s->stripTags("<b>"); // Hello <b>World</b>
$s = new Stringizer("<html><head><title>title</title></head><body>Hello <b><span class='fake-class'>World</span></b> こんにちは世界</body></html>"); $s->stripTags(); // titleHello World こんにちは世界
substring
根据位置(字符串中的索引位置)和部分长度查找字符串的一部分
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->subString(0, 4); // Fizz
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->subString(5, 4)); // Buzz
$s = new Stringizer("Fizz Buzz Foo Bar"); $s->subString(5, 4)); // Buzz
MultiByte
$s = new Stringizer("キラキラした キラキラした"); $s->subString(7); // キラキラした
swapCase
交换每个字符的大小写。
$s = new Stringizer("hELLO wORLD"); $s->swapCase(); // Hello World
toBoolean
将逻辑真字符串转换为布尔值。
(new Stringizer(true))->toBoolean(); // true (new Stringizer(false))->toBoolean(); // false (new Stringizer("stringizer"))->toBoolean(); // false (new Stringizer("true"))->toBoolean(); // true (new Stringizer("false"))->toBoolean(); // false (new Stringizer("TRUE"))->toBoolean(); // true (new Stringizer("FALSE"))->toBoolean(); // false (new Stringizer("on"))->toBoolean(); // true (new Stringizer("off"))->toBoolean(); // false (new Stringizer("ON"))->toBoolean(); // true (new Stringizer("OFF"))->toBoolean(); // false (new Stringizer("yes"))->toBoolean(); // true (new Stringizer("no"))->toBoolean(); // false (new Stringizer("YES"))->toBoolean(); // true (new Stringizer("NO"))->toBoolean(); // false (new Stringizer(""))->toBoolean(); // false (new Stringizer(null))->toBoolean(); // false (new Stringizer(1))->toBoolean(); // true (new Stringizer(-1))->toBoolean(); // false
trim
移除字符串两侧的空格
$s = new Stringizer("\x20\x20\x20 キラキラしたfizzخالد الشمعة "); $s->trim(); // キラキラしたfizzخالد الشمعة
trimLeft
移除字符串左侧的空格
$s = new Stringizer("\x20\x20\x20 キラキラしたfizzخالد الشمعة "); $s->trimLeft()); // キラキラしたfizzخالد الشمعة
trimRight
移除字符串右侧的空格
$s = new Stringizer("\x20\x20\x20 キラキラしたfizzخالد الشمعة "); $s->trimRight(); // \x20\x20\x20 キラキラしたfizzخالد الشمعة
truncate
按指定长度缩短字符串的右侧
$s = new Stringizer("fòô bàř"); $s->truncate(4); // fòô
$s = new Stringizer("FizzBuzz"); $s->truncate(4); // Fizz
truncateMatch
如果给定子串匹配,缩短字符串的左侧或右侧
$s = new Stringizer("fòô bàř"); $s->truncateMatch(" bàř"); // fòô
$s = new Stringizer("FizzBuzzFooBar"); $s->truncateMatch("Foo"); // FizzBuzz
不区分大小写
$s = new Stringizer("FizzBuzzFooBar"); $s->truncateMatchCaseInsensitive("foo"); // FizzBuzz
uppercase
确保整个字符串是大写字母
$s = new Stringizer("fIzz"); $s->uppercase(); // FIZZ
uppercaseWords
确保整个字符串是大写字母
$s = new Stringizer("fizz buzz foo bar"); $s->uppercaseWords(); // Fizz Buzz Foo Bar
width
查找字符串的宽度,对于多字节字符串,这与长度不同
$s = new Stringizer("キラキラした"); $s->width(); // 12, note multi-byte characters take up more space, typice 2 for each character
$s = new Stringizer("FizzBuzz"); $s->length(); // 8
wordCount
计算单词数量。
$s = new Stringizer("ȘŦŗÍñĝìzĕŕ こんにちは ȘŦŗÍñĝìzĕŕ こんにちは ȘŦŗÍñĝìzĕŕ"); $s->wordCount(); // 5
基本功能
setstring
设置要应用字符串操作的字符串,这将设置原始值。
$s = new Stringizer("dummy-value"); $s->setString("new-dummy-value"); #### getstring Retrieve the string in its most current state ```php $s = new Stringizer("dummy-value"); $s->getString();
getStringOriginal
检索任何字符串操作之前的状态
$s = new Stringizer("dummy-value"); $s->getStringOriginal();
__toString
检索当前最状态下的字符串
$s = new Stringizer("dummy-value"); echo ($s); // this will output current state, defaults to using the PHP built __toString method
setEncoding
设置编码,背后PHP函数mb_internal_encoding被应用
$s = new Stringizer("dummy-value"); $s->setEncoding("UTF-8"); $s->getEncoding(); // UTF-8
getEncoding
$s = new Stringizer("dummy-value"); $s->getEncoding(); // Outputs your default encoding based mb_internal_encoding