treehouselabs / slugifier
Slugifier
v1.0.1
2014-09-15 14:43 UTC
Requires
- php: >=5.4
- ext-iconv: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ~4.1
This package is auto-updated.
Last update: 2024-09-17 10:09:08 UTC
README
简单、可扩展的库,可以将字符串转换为缩略名。
还有吗?
是的,很抱歉。不过我们认为这个很不错。查看功能以了解它是否也适合您。
功能
- 轻量级:无依赖,除了几乎总是存在的
mbstring
和iconv
扩展。 - 易于使用:
(new Slugifier())->slugify('Look Ma, no hands!'); // look-ma-no-hands
- 处理特殊字符、各种引号、转写、HTML 实体等。全部都是开箱即用。
- 可扩展:添加您的自定义翻译
- PSR-4 兼容并使用 PRS-2 编码规范编写
- 经过良好测试
使用方法
$slugifier = new Slugifier(); $slugifier->slugify('Look má, I\'m a „slug”'); // look-ma-im-a-slug
使用不同的分隔符
$slugifier = new Slugifier(); $slugifier->slugify('Foo, bar & baz', '_'); // foo_bar_baz
添加特殊翻译
$slugifier = new Slugifier(); $slugifier->addTranslator(new EnglishTranslator()); $slugifier->slugify('Cow & chicken'); // cow-and-chicken
或编写自己的
class CowTranslator implements TranslatorInterface { public function translate($str) { return str_ireplace('cow', 'supercow', $str); } } $slugifier = new Slugifier(); $slugifier->addTranslator(new CowTranslator()); $slugifier->slugify('Cow to the rescue'); // supercow-to-the-rescue
更改默认行为
默认情况下,特殊字符、引号、HTML 实体等将被转换。您可以通过将 false
传递给构造函数来禁用此行为。这样,您可以从头开始,并添加自己的翻译器。尽管如此,我们仍然执行 iconv
转写,因为我们希望将数据转换为 ASCII,同时尽可能保留原始数据。