[扩展推荐] PHP 字符串操作类 Twine
Twine 是一个由 Chris Kankiewicz 为字符串开发的独立的 PHP 7 扩展包,它使用一套富有表现力的流体语法来操作和比较字符串。
下面是一些基本使用和转换方法的示例:
use PHLAK\Twine;
$string = new Twine\Str('john pinkerton');
$string->substring(5, 4); // Returns 'pink'
$string->pad(20, '_'); // Returns 'john pinkerton______'
$string->pad(20, '_', Twine\Config\Pad::LEFT); // Returns '______john pinkerton'
$string->pad(20, '_', Twine\Config\Pad::BOTH); // Returns '___john pinkerton___'
// 别名
$string->padLeft(20, '_');
$string->padRight(20, '_');
$string->padBoth(20, '_');
转换为大写为你提供了一些不同的选项, 比如将整个字符串转换、只转换第一个字母以及每个单词的第一个字母:
$string = new Twine\Str('john pinkerton');
// 转换为大写
$string->uppercase(); // Returns 'JOHN PINKERTON'
$string->uppercase(Twine\Config\Uppercase::FIRST); // Returns 'John pinkerton'
$string->uppercase(Twine\Config\Uppercase::WORDS); // Returns 'John Pinkerton'
//只转换第一个字母或转换每个单词首字母这两个方法的别名
$string->uppercaseFirst();
$string->uppercaseWords();
Twine 提供了多种方法来一不同的方式来验证字符串的差异:
$string = new Twine\Str('john pinkerton');
$string->startsWith('pink'); // false
$string->endsWith('ton'); // true
$string->contains('pin'); // true
$string->equals('JoHN PiNKeRToN', Twine\Config\Equals::CASE_INSENSITIVE); // Returns true
// 别名
$string->insensitiveMatch('JoHN PiNKeRToN'); // true
你可以使用 base64()
方法对字符串进行编码并且可以生成各种哈希散列:
$string = new Twine\Str('john pinkerton');
$string->base64(); // 返回'am9obiBwaW5rZXJ0b24='
$string->md5(); // 返回 '30cac4703a16a2201ec5cafbd600d803'
$string->sha1(); // 返回 'fcaf28c7705ba8f267472bb5aa8ad883f6bf0427'
$string->sha256(); // 返回 '7434f26c8c2fc83e57347feb2dfb235c2f47b149b54b80692beca9d565159dfd'
format()
方式看起来很简洁,它允许你使用相同的格式化文本创建多个字符串:
$string = new Twine\Str('Hello %s! Welcome to %s, population %b.');
$string->format('John', 'Pinkertown', 1337);
// Returns 'Hello John! Welcome to Pinkertown, population 10100111001.'
这个库的另一个很酷的技巧是链接方式,甚至在链接之后可以进行断言:
$string = new Twine\Str('john pinkerton');
$string->substring(5, 4)->equals('pink'); // 返回 true
了解更多
这个库中有很多字符串方法,鼓励您查看GitHub repo 在自述文件中找到完整的 API. 你可以通过 phlak/twine的 composer 安装它.
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: