hoa / string
Hoa\String 库。
Requires
- php: <7
- hoa/ustring: ~3.0
Requires (Dev)
- hoa/test: ~1.0
Suggests
- ext-intl: To get a better Hoa\String::toAscii() and Hoa\String::compareTo().
This package is not auto-updated.
Last update: 2020-01-24 15:00:19 UTC
README
Hoa 是一套 模块化、可扩展 和 结构化 的 PHP 库。此外,Hoa 致力于成为工业界和研究界的桥梁。
Hoa\String 
此库允许使用一些搜索算法轻松地操作 UTF-8 字符串。
警告
此库已弃用,由于新的保留关键字 string
,不支持 php >= 7
,请使用 Hoa\Ustring
。
安装
使用 Composer,要将此库包含到依赖项中,您需要要求 hoa/string
{ "require": { "hoa/string": "~2.0" } }
请阅读网站以获取有关如何安装的更多信息。
快速使用
我们提供两种用法的快速概述:操作 UTF-8 字符串和一个搜索算法。
自然 UTF-8 字符串操作
Hoa\String\String
类允许以非常自然的方式轻松操作 UTF-8 字符串。此类实现了 \ArrayAccess
、\Countable
和 \IteratorAggregate
接口。我们将使用以下示例
$french = new Hoa\String\String('Je t\'aime'); $arabic = new Hoa\String\String('أحبك'); $japanese = new Hoa\String\String('私はあなたを愛して');
要获取第一个字符,我们将这样做
var_dump( $french[0], // string(1) "J" $arabic[0], // string(2) "أ" $japanese[0] // string(3) "私" );
要获取最后一个字符,我们将这样做 [-1]
。它支持无界(和模数)索引。
请注意,它关注文本 方向。看看 $arabic[0]
,它返回 أ
而不是 ك
。要获取方向,我们可以使用 Hoa\String\String::getDirection
方法(该方法调用 Hoa\String\String::getCharDirection
静态方法),它返回 Hoa\String\String::LTR
(0
)或 Hoa\String\String::RTL
(1
)
var_dump( $french->getDirection(), // int(0) $arabic->getDirection(), // int(1) $japanese->getDirection() // int(0) );
文本方向对于 Hoa\String\String
上的 append
、prepend
、pad
… 方法等也很重要。
要获取字符串的长度,我们可以使用 count
函数
var_dump( count($french), // int(9) count($arabic), // int(4) count($japanese) // int(9) );
我们还可以遍历字符串
foreach ($arabic as $letter) { var_dump($letter); } /** * Will output: * string(2) "أ" * string(2) "ح" * string(2) "ب" * string(2) "ك" */
同样,文本方向在这里也很有用。对于 $arabic
,迭代是从右到左进行的。
一些静态方法很有帮助,例如 fromCode
、toCode
或 isUtf8
在 Hoa\String\String
var_dump( Hoa\String\String::fromCode(0x1a9), // string(2) "Ʃ" Hoa\String\String::toCode('Ʃ'), // int(425) == 0x1a9 Hoa\String\String::isUtf8('Ʃ') // bool(true) );
我们还可以将任何文本转换为 ASCII
$emoji = new Hoa\String\String('I ❤ Unicode'); $maths = new Hoa\String\String('∀ i ∈ ℕ'); echo $emoji->toAscii(), "\n", $maths->toAscii(), "\n"; /** * Will output: * I (heavy black heart) Unicode * (for all) i (element of) N */
搜索算法
Hoa\String\Search
实现了字符串上的搜索算法。
例如,Hoa\String\Search::approximated
方法通过近似模式进行搜索(基于主对角线单调性的 k 个差异)。如果我们用1个差异在 CAGATAAGAGAA
中搜索单词 GATAA
,我们将执行以下操作:
$search = Hoa\String\Search::approximated( $haystack = 'CAGATAAGAGAA', $needle = 'GATAA', $k = 1 ); $solutions = array(); foreach ($search as $pos) { $solutions[] = substr($haystack, $pos['i'], $pos['l']); }
我们会找到 AGATA
、GATAA
、ATAAG
和 GAGAA
。
结果不是很方便,但算法优化得很好,并找到了许多应用。
文档
可以在网站上找到不同的文档: http://hoa-project.net/。
许可证
Hoa 采用新的 BSD 许可证(BSD-3-Clause)。请参阅 LICENSE
。