php - 如何在 PHP 中找到两个字符串之间的最大公共(public)子字符串?

标签 php algorithm string performance spam-prevention

是否有一种快速算法可以在两个 strings 中找到最大的公共(public)子串,或者这是一个 NPComplete 问题?

在 PHP 中我可以大海捞针:

<?php

if (strstr("there is a needle in a haystack", "needle")) {
    echo "found<br>\n";
}
?>

我想我可以在其中一个 strings 上循环执行此操作,但那会非常昂贵!特别是因为我对此的应用是搜索电子邮件数据库并查找垃圾邮件(即同一个人发送的类似电子邮件)。

有没有人有任何可以扔掉的 PHP 代码?

最佳答案

similar_text功能可能是你想要的。

这会计算两个字符串之间的相似度。返回两个字符串中匹配字符的数量

您可能还想看看 levenshtein

关于php - 如何在 PHP 中找到两个字符串之间的最大公共(public)子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336605/

相关文章:

php - 从 PHP 数组搜索 mySQL 表中的多列与固定

php - 比较 2 个 MySQL 表并将新行移动到第二个表

algorithm - for i : for o = i+1 的复杂度是多少

android - 在 Android 应用程序中存储大型结构化文本

php - Slim 3 在中间件中获取当前路由

php - 带问号的 PDO 准备不适用于数字

c# - 如何解释 C# 中的伪代码?

algorithm - 获取 MATLAB 向量的子集

python - 在包含特殊重音字符的字符串的字符之间添加空格

ruby - 如何在 Ruby 中将 Strftime 转换为字符串?