我正在尝试制作自己的错误单词过滤器,并且在句子中有多个单词时效果很好。因此,现在要做的是,将值从数据库中取出,然后循环循环,必须替换广告词。
让我说,我有(荷兰语)这句话:Deze kanker zooi moet eens stoppen! Het is godverdomme altijd het zelfde zooitje.
。这些是必须在数据库中替换的单词:
kanker
和godverdomme
。
所以我在数据库中:
很好,当必须替换两个ords时,然后就不想替换了……
我的助手功能:
public static function Filter($value)
{
$badwords = DB::table('badwords')->get();
foreach ($badwords as $badword)
{
$replaced = str_ireplace($badword->bad_word, $badword->replacement, $value);
}
return $replaced;
}
希望可以有人帮帮我 :)
最亲切的问候,
罗宾
对于foreach循环中的每次迭代,您都将的值设置$replaced
为任何str_ireplace
返回值。
在函数的最后,您将返回一个值,该值仅应替换最后一个坏词。
str_ireplace
将单个字符串值或字符串值数组替换为第一个和第二个参数,这意味着您可以创建两个数组,将其填充到foreach
循环中,然后在str_ireplace
after循环中运行,例如:
$words = [];
$replace = [];
foreach ($badwords as $badword) {
array_push($words, $badword->bad_word);
array_push($replace, $badword->replacement);
}
return str_ireplace($words, $replace, $value);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句