jasonlam604/stringizer

Stringizer 是一个支持方法链和多字节处理的 PHP 字符串操作库

2.14.1 2020-03-21 21:59 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:03:58 UTC


README

Stringizer

Stringizer 是一个支持方法链和多字节处理的 PHP 字符串操作库

Latest Stable Version Total Downloads Monthly Downloads Build Status Coverage Status License: MIT

基本功能

字符串函数

概述

Stringizer 是由现有的 PHP 多字节字符串函数和各种 Stackoverflow.com 上的字符串操作解决方案组成的字符串库。目的是节省您自己查找字符串操作解决方案的时间,并提供方法链的便利。2016 年 6 月获得 PHPClasses.org 的创新奖

PSR 合规性和代码质量

关键亮点

  • 内置多字节支持,适用于所有适用和可能的情况
  • 函数链
  • 在某些情况下,省去您尝试找出正确正则表达式解决方案的麻烦

版本

Latest Stable Version

安装

建议您使用 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