Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查字符串中是否有重复部分_Php_Arrays_String_Spam - Fatal编程技术网

PHP检查字符串中是否有重复部分

PHP检查字符串中是否有重复部分,php,arrays,string,spam,Php,Arrays,String,Spam,我正在努力阻止垃圾邮件,其中很多是重复出现的单词,有没有办法检查字符串,看看字符串中是否有重复出现的短语 $string = 'Hello ! Hello ! Hello ! Hello !"; 谢谢,您可以试试substr\u count(): 当然,如果您想检查字符串中的任何单词是否出现多次。。。这样效率就会大大降低。您可能需要跟踪“已检查单词”的列表,并检查字符串中每个尚未检查的单词是否出现多次 正如Binarious提到的,验证码是阻止垃圾邮件的更好方法;-) 您可以尝试substr

我正在努力阻止垃圾邮件,其中很多是重复出现的单词,有没有办法检查字符串,看看字符串中是否有重复出现的短语

$string = 'Hello ! Hello ! Hello ! Hello !";
谢谢,

您可以试试substr\u count():

当然,如果您想检查字符串中的任何单词是否出现多次。。。这样效率就会大大降低。您可能需要跟踪“已检查单词”的列表,并检查字符串中每个尚未检查的单词是否出现多次

正如Binarious提到的,验证码是阻止垃圾邮件的更好方法;-)

您可以尝试substr\u count():

当然,如果您想检查字符串中的任何单词是否出现多次。。。这样效率就会大大降低。您可能需要跟踪“已检查单词”的列表,并检查字符串中每个尚未检查的单词是否出现多次


正如Binarious提到的,验证码是阻止垃圾邮件的更好方法;-)

一个快速的谷歌搜索给了我:


然而,有更好的反垃圾邮件的想法。像Captchas。人类的垃圾邮件发送者很难抓到。他们会想办法绕过你的文字计数器。也许你应该像Youtube那样考虑一种基于用户的垃圾邮件报告方法。

一个快速的谷歌搜索给了我:


然而,有更好的反垃圾邮件的想法。像Captchas。人类的垃圾邮件发送者很难抓到。他们会想办法绕过你的文字计数器。也许你应该像Youtube那样考虑一种基于用户的垃圾邮件报告方法。

substr\u count
如果你知道你在寻找什么,就可以了。如果您不知道垃圾邮件是什么,可以使用
str\u word\u count
array\u count\u value

$string = 'Hello! Hello! Hello! Hello! Lorem Ipsum';
$words = str_word_count($string, 1);
$count = array_count_values($words);
print_r($count);
这将为您提供以下信息:

Array
(
    [Hello] => 4
    [Lorem] => 1
    [Ipsum] => 1
)

您可以
sort()
此数组并获得字符串中最常用单词的排名。您还应该检查停止词(如“和”、“或”、“我”等)

substr\u count
只要你知道你在找什么就可以了。如果您不知道垃圾邮件是什么,可以使用
str\u word\u count
array\u count\u value

$string = 'Hello! Hello! Hello! Hello! Lorem Ipsum';
$words = str_word_count($string, 1);
$count = array_count_values($words);
print_r($count);
这将为您提供以下信息:

Array
(
    [Hello] => 4
    [Lorem] => 1
    [Ipsum] => 1
)

您可以
sort()
此数组并获得字符串中最常用单词的排名。您还应该检查停止词(如“和”、“或”、“我”等)

使用而不是推出自己的反垃圾邮件解决方案怎么样?我曾经为一般文本编写过垃圾邮件过滤器,如果没有误报,很难进行过滤。Akismet已经可以使用了。用它来代替自己的反垃圾邮件解决方案怎么样?我曾经为一般文本编写过垃圾邮件过滤器,如果没有误报,很难进行过滤。Akismet已经可以使用了。问题是,我不知道重复的字符串是什么。我以为它有一个布尔函数…问题是,我不知道重复的字符串是什么。我认为它有一个布尔函数……如果有任何方法可以执行一个函数,如果其中一个词被使用了,比如说,超过10次,不包括常见的这些词:比如a,the,my,he,she,你需要一个数组中的停止词列表,然后在
$count
列表中循环。我相信没有一个PHP函数能够单独解决stopword问题。也许
array\u filter
可以帮助您。如果有任何方法可以执行一个函数,如果其中一个单词被使用了10次以上,不包括常见的这些单词:例如a、the、my、he、she,那么您需要一个数组中的停止词列表,然后在
$count
列表中循环。我相信没有一个PHP函数能够单独解决stopword问题。也许
array\u filter
可以帮助您。