[扩展推荐] PHP 字符串操作类 Twine

翻译 Summer ⋅ 于 3周前 ⋅ 最后回复由 JaguarJack 2天前 ⋅ 383 阅读 ⋅ 原文地址

站点的翻译文章创建时,您将第一时间收到通知。

这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍

file

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, '_');
Larwas 翻译于 3周前

转换为大写为你提供了一些不同的选项, 比如将整个字符串转换、只转换第一个字母以及每个单词的第一个字母:

$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
Larwas 翻译于 3周前

你可以使用  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 安装它.

人来人往 翻译于 3周前

原文地址:https://laravel-news.com/twine-string-ma...

译文地址:https://laravel-china.org/topics/14965/e...


本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

本帖已被设为精华帖!
回复数量: 6
  • 难怪别人吐槽php性能,原来是有原因的。。。

    3周前 1
  • @839891627 不太理解,你所说的性能 :joy:

    3周前
  • @benettzhang 额 过度封装呀。原生字符串函数还搞这么复杂。。

    3周前
  • 这个操作也许会用得上

    3周前
  • @839891627 倒不觉得是过度封装,这种富有表现力的工具库其实能让代码写得更干净一些,并且统一了一些异常处理的问题。

    只是需要一点学习成本……

    web 开发的性能问题主要还是在数据库上面

    2周前
  • 还是用函数吧。个人认为比这个好

    2天前
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 250 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Composer 中文文档

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档