mediawiki-php-FastStringSearch 快速字符串搜索和替换的 PHP 扩展

发布于 2021-06-09 20:28:45 字数 1138 浏览 1274 评论 0

这是一个用于快速字符串搜索和替换的 PHP 扩展。它被使用语言转换器 .php。它支持多个搜索词。我们用它作为替代 PHP 的 strtr,它在某些情况下非常慢。

汉字转换就是其中一种情况。此扩展程序使用用于多个搜索词的 Commentz-Walter 风格算法,或 Boyer-Moore 单个搜索词的算法。

几个源文件取自 GNU grep,并在 GNU General 下公共许可证。PHP 许可证不兼容,因此包含此的 PHP 二进制文件扩展可能无法在任何许可下重新分发。你可以使用这样的然而,私人建造。源文件可以在其下分发各自的许可证。

界面概要如下。要准备字符串搜索:

$fss = fss_prep_search('Hello');

或者

$fss = fss_prep_search( array( 'Hello', 'Hi' ) );

要搜索字符串,请将先前准备好的对象传递给 fss_exec_search,连同主题字符串(“haystack”):

$result = fss_exec_search( $fss, 'xxx hello xxx' );

这将返回一个数组,其中第一个元素是匹配,第二个元素是匹配的长度。如果没有匹配项找到,返回 false。返回第一个匹配,如果多次搜索字符串在同一位置匹配,最长的将被返回。这个功能还接受一个可选的第三个参数,给出开始的偏移量搜索。

替换是这样执行的:

$fss = fss_prep_replace( array( 'from' => 'to' ) );
$text = fss_exec_replace( $fss, $text );

替换数组的解释与 strtr 中的完全相同:始终使用最长匹配,并且已经使用过的字符串部分替换后不再处理。

您可以通过以下方式释放 FSS 结果:

fss_free( $fss );

这通常不是必需的,因为 PHP 会在所有引用被释放。

如果在 fss_exec_replace() 中使用通过 fss_prep_search() 准备的 FSS 对象,所有匹配的字符串都将被删除,即替换为一个空字符串。

github 地址:https://github.com/arnaud-lb/mediawiki-php-FastStringSearch

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文