Membuat Badword Filter

Kali ini saya akan berbagi cara membuat badword filter.
Saya membuat script ini karena udah pusing muter-muter nyari badword filter yang bisa mereject komen yang mengandung kata-kata kotor.
Kebanyakan script yang sudah dishare adalah script untuk mengganti kata kotor dengan kata-kata lain, atau ada juga yang mereject kata-kata kotor tapi kalau ada awalan atau akhiran dari kata-kata tersebut yang artinya lain tetep kena filter atau kereject.
contoh: ass adalah badword, tapi pass atau association bukan badword. kadang pada kasus ini pass dan association juga ikut kena.

Ok langsung saja, berikut ini scriptnya
<?php
// ini cuma contoh array badword yang akan difilter
// silakan ganti sendiri kata apa aja yang mau difilter
$badword = array('anu', 'mumet', 'pusing');
$ban = "/\b(".implode('|', $badword).")\b/siu";
if(preg_match($ban, $post)) {
 echo 'Sorry kamu tidak diijinkan memposting dengan kata-kata kotor';
}
else {
 // post diproses
}
?>

Perhatikan script tersebut, yang membuat script ini beda dengan yang lain adalah \b atau boundary.
Dengan ditambahkan boundary pada delimiter maka pass dan association tidak akan match dengan ass.

Boundari juga bisa dipakai dalam fungsi preg_replace yang cuma akan mengganti match word, bukan mengganti word yang mengandung unsur match (gak jelas ngomong apa ini, intinya gitu lah hehe)
ok, sekian saja silakan mencoba dan silakan mumet sendiri :)