php - 如何将文本区域的内容与php数组中的值进行比较?
问题描述
我想检查文本区域的内容是否包含某些“坏词”。我从 textarea 中读取了内容,$_POST['message']
这是我的 textarea:
<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 [] 中尝试过:
<textarea class="form-control" name="message[]" placeholder="MESSAGE"></textarea>
和:
$usermessage = $_POST['message'];
print_r($usermessage);
但print_r()
没有给我任何输出
那么如何将 textarea 的内容放入数组中?
或者:也许还有其他可能实现这一目标?
解决方案
您的 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
}
}
我是否正确理解了您的问题?