worthwelle / alphonic
一个将字符串转换为音标拼写以及从音标拼写转换回字符串的库,适用于电话、收音机或其他通信渠道不清晰的场景。Alphonic不仅使用标准的北约字母,还支持各种其他音标字母,非常适合轻松地实现具有历史准确性的字符串转换。
v0.1.0
2020-01-03 20:39 UTC
Requires
- php: >=5.3.0
- justinrainbow/json-schema: ^5.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.2.20
- phpunit/phpunit: ^4.8.35 || ^5.7
This package is auto-updated.
Last update: 2024-09-29 05:55:30 UTC
README
一个将字符串转换为音标拼写以及从音标拼写转换回字符串的库,适用于电话、收音机或其他通信渠道不清晰的场景。Alphonic不仅使用标准的北约字母,还支持各种其他音标字母,非常适合轻松地实现具有历史准确性的字符串转换。
重要说明
本库提供的字母表不仅提供原样,还提供原样。也就是说,这些字母表是按照它们最初定义的方式提供的。这意味着每个字母表支持的字符不同。有些字母表仅覆盖古典拉丁字母,有些包括数字,有些包括特定语言的拉丁字符(例如,带有变音符号的字母),还有些包括标点和特定字符。
可以使用add_symbol
函数克服这些限制,该函数允许一次性将字符添加到特定的字母表。要仅填充多个字母表中缺失的符号,可以使用add_symbol
或add_symbols
函数,并将$overwrite
设置为false。这将自然地成为一个非标准的使用字母表的方法。
关于创建自定义字母表的信息将在不久的将来提供。
安装
库
git clone https://github.com/worthwelle/alphonic.git
Composer
composer require worthwelle/alphonic
用法
加载预配置的字母表
<?php $alphonic = new Alphonic(); $alphonic->load_alphabets(); $alphonic->alphabet("NATO")->add_symbol(" ","|"); $alphonic->alphabet("NATO")->add_symbol(",","Comma"); $alphonic->alphabet("NATO")->add_symbol("!","Exclamation"); echo $output = $alphonic->phonetify("Holy alphabets, Batman!", "NATO"); // Hotel Oscar Lima Yankee | Alfa Lima Papa Hotel Alfa Bravo Echo Tango Sierra Comma | Bravo Alfa Tango Mike Alfa November Exclamation echo $alphonic->unphonetify($output, "NATO"); // HOLY ALPHABETS, BATMAN!
加载自定义字母表
<?php $alphonic = new Alphonic(); $alphonic->load_alphabet_from_file('myalphabet.json'); $alphonic->load_alphabet_from_json(file_get_contents('myotheralphabet.json'); // The second argument allows Alphonic to skip alphabets that don't pass validation. // This defaults to false. $alphonic2 = new Alphonic('directory/full/of/alphabets', true);
配置选项
已知问题
- 目前不支持本地化,字母表需要使用"en"本地化标题和符号。
- 在早期开发阶段,JSON模式可能会在不通知的情况下更改。一旦v1.0正式化,这将成为未来的标准。
运行测试
composer test # run all unit tests composer test-timing # report the runtime of each test into an XML file composer coverage # run unit tests and report code coverage composer coverage-report # run unit tests and provide a thorough code coverage report composer testOnly TestClass # run specific unit test class composer testOnly TestClass::testMethod # run specific unit test method composer style-check # check code style for errors composer style-fix # automatically fix code style errors
贡献
字母表
目前支持的字母表