tamtamchik / namecase
此软件包允许您在可能的情况下将名称转换为正确的格式。
3.1.0-beta.1
2024-08-06 15:20 UTC
Requires
- php: >=7.3
- ext-mbstring: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-06 15:44:37 UTC
README
名字和姓氏通常全部大写或全部小写存储。此软件包允许您在可能的情况下将名称转换为正确的格式。尽管名字和姓氏通常单独存储,如果它们出现在一个字符串中,则NameCase可以正确处理它们。
目前,NameCase可以正确处理包含以下任何内容的名称
Mc, Mac, al, el, ap, bat, ben, bin, binti, binte, da, de, das, dos, delle, della, di, du, del, der, den, ten, ter, la, le, lo, van and von.
它可以正确处理包含撇号和连字符的名称。
注意
此README.md是针对3.x版本的。
如果您需要PHP 5兼容版本,请使用1.0.x! README.md
安装
通过Composer
$ composer require tamtamchik/namecase
使用
use \Tamtamchik\NameCase\Formatter; use function \Tamtamchik\NameCase\str_name_case; // As a static call Formatter::nameCase("KEITH"); // => Keith Formatter::nameCase("LEIGH-WILLIAMS"); // => Leigh-Williams Formatter::nameCase("MCCARTHY"); // => McCarthy Formatter::nameCase("O'CALLAGHAN"); // => O'Callaghan Formatter::nameCase("ST. JOHN"); // => St. John Formatter::nameCase("VON STREIT"); // => von Streit Formatter::nameCase("AP LLWYD DAFYDD"); // => ap Llwyd Dafydd Formatter::nameCase("HENRY VIII"); // => Henry VIII Formatter::nameCase("VAN DYKE"); // => van Dyke // Or as an instance $formatter = new Formatter(); $formatter->nameCase("LOUIS XIV"); // => Louis XIV // Or as a function str_name_case("JJ ABRAMS"); // => JJ Abrams // Passing options (see below for details) Formatter::setOptions([ 'lazy' => true, 'irish' => true, 'spanish' => false, 'roman' => true, 'hebrew' => true, 'postnominal' => true, ]); // Or $formatter = new Formatter(['spanish' => true]); // Or $formatter->setOptions([ 'lazy' = false, 'postnominal' => false ]); // Or even Formatter::nameCase("VAN DYKE", ['lazy' = false]); // And for function str_name_case("VAN DYKE", ['lazy' = false]);
选项
lazy
– 默认:true
. 如果字符串已经是混合大小写且lazy选项为true
,则不执行任何操作。irish
– 默认:true
. 正确处理“Mac”异常。spanish
– 默认:false
. 正确处理el, la
和西班牙语连词。roman
– 默认:true
. 正确处理罗马数字。hebrew
– 默认:true
. 正确处理ben, bat
。postnominal
– 默认:true
. 正确处理后缀,例如PhD
。
排除后缀
<?php use Tamtamchik\NameCase\Formatter; Formatter::excludePostNominals('MOst'); Formatter::nameCase('ČERNÝ MOST');
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
测试与演示
$ composer tests $ composer demo
贡献
有关详细信息,请参阅CONTRIBUTING和CODE_OF_CONDUCT。
安全性
如果您发现任何与安全性相关的问题,请通过电子邮件yuri.tam.tkachenko@gmail.com联系,而不是使用问题跟踪器。
致谢
此库是基于Perl库移植的,其主要功能归功于Mark Summerfield的Perl版本。
我还使用了一些来自Ruby版本(由Aaron Patterson编写)的解决方案。
PHP端口中的任何错误都是我的责任。
鸣谢
原始PERL Lingua::EN::NameCase
版本
- 版权© Mark Summerfield 1998-2014。保留所有权利。
- 版权© Barbie 2014-2019。保留所有权利。
Ruby版本
- 版权© Aaron Patterson 2006。保留所有权利。
PHP版本
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。