如何将文本区域的内容与数组中的值进行比较 php?

How to compare content form textarea with values from array with php?

我想检查文本区域的内容是否包含某些 "bad words"。 我用 $_POST['message'] 从文本区域读取内容 这是我的文本区域:

<textarea class="form-control" name="message" placeholder="MESSAGE"></textarea>                             

所有的坏词都在一个数组中:

// read bad words into array
$blacklistfile = 'blacklist/badwords.txt';
$blacklistarray = file($blacklistfile, FILE_IGNORE_NEW_LINES);

为了检查$_POST['message']的内容是否包含这些坏词,我想:将$_POST['message']的所有内容放入一个数组中并比较这些数组。

我在消息后的[]文本区试过:

<textarea class="form-control" name="message[]" placeholder="MESSAGE"></textarea>   

和:

$usermessage = $_POST['message'];
print_r($usermessage);

但是print_r()没有输出

那么如何将textarea的内容放到数组中呢??

或者:也许还有其他的可能性来实现这个目标?

您的文本区域将提交一个字符串

<textarea class="form-control" name="message" placeholder="MESSAGE"></textarea>

在服务器上你必须在空格上展开这个字符串才能得到单词数组

$textareaValue = $_POST['message'];
$wordsToCheck = explode(" ",$textareaValue);

您还可以过滤唯一的单词以避免重复迭代

$wordsToCheck = array_unique($wordsToCheck); 

之后,您可以将每个textarea单词与badlist进行比较

foreach ($wordsToCheck as $word){
    if(in_array($word, $blacklistarray)){
        //word is bad
    }else{
        //it's ok
    }
}

我是否正确理解了你的问题?