treehouselabs/slugifier

v1.0.1 2014-09-15 14:43 UTC

This package is auto-updated.

Last update: 2024-09-17 10:09:08 UTC


README

简单、可扩展的库,可以将字符串转换为缩略名。

还有吗?

是的,很抱歉。不过我们认为这个很不错。查看功能以了解它是否也适合您。

功能

  • 轻量级:无依赖,除了几乎总是存在的 mbstringiconv 扩展。
  • 易于使用:(new Slugifier())->slugify('Look Ma, no hands!'); // look-ma-no-hands
  • 处理特殊字符、各种引号、转写、HTML 实体等。全部都是开箱即用。
  • 可扩展:添加您的自定义翻译
  • PSR-4 兼容并使用 PRS-2 编码规范编写 Scrutinizer Code Quality
  • 经过良好测试 Build Status

使用方法

$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,同时尽可能保留原始数据。