【发布时间】:2023-04-06 01:24:01
【问题描述】:
我使用 validate php 函数来过滤坏词。我的问题是这个脚本不能在我输入的语句中计算坏词。如何计算语句中的坏词..?
例如:你是 badword1,他们是 badword2。
这句话应该是2个badword。
PHP
function validasi($string,$banned_words) {
foreach($banned_words as $banned_word) {
if(stristr($string,$banned_word)){
return false;
}
}
return true;
}
$banned_words = array('badword1','badword2','badword3','badword4','badword5','badword6','badword7');
$teks = $_POST['teks'];
if (!validasi($teks,$banned_words)) {
echo count(!validasi($teks,$banned_words));
echo 'blocked!';
}else{
echo 'Text valid';
}
HTML
<form action="validasi.php" method="POST">
<input type="text" name="teks">
<input type="submit" value="Validasi">
</form>
输出
1 !blocked。
预期结果
2 !阻塞
【问题讨论】:
-
!validasi($teks,$banned_words)是true或false。 php.net/count:如果参数不是数组或者不是实现Countable接口的对象,则返回1。 -
您的验证函数只返回一个布尔值(真/假),而“真”布尔值在 PHP 中打印为“1”。您将需要跟踪该函数中的计数,然后打印该计数。
-
如果输入的是“badword1 and badword1”,结果应该是
1还是2? -
不一样..我已经编辑了标题...