您当前的位置:首页 > 计算机 > 编程开发 > PHP

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

时间:12-14来源:作者:点击数:

这是一个用于快速字符串搜索和替换的 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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐