小金井にあるWEB制作会社の備忘録

MEMORANDUM

PHPの「preg_match」を使用してNGワードフィルタ機能を実装する

掲示板など不特定多数の方が利用できるサービスを作成する際に、不適切な書き込みができないよう禁止ワード(NGワード)を設ける場合もあるため、実装方法をメモ。

PHP

$ngWords = '/○○○○|○○○○|○○○○|○○○○|○○○○|○○○○|○○○○/u';

function checkNGWord($ngWords, $text) {
	if (preg_match($ngWords, $text)) {
		return true;
	} else {
		return false;
	}
}

// 使用例
$comment = "お前は○○○○";
if(checkNGWord($ngWords, $comment)){
	//禁止ワードが含まれている際の処理を記載
}

禁止ワードが含まれる投稿を一切登録できなくする方法もありますが、その場合は対象の文字が含まれている普通の用語(例:禁止ワード「エロ」の場合の、投稿ワード「ピエロ」)も登録できなくなってしまうこともあるため、禁止ワードを過剰に設定しない、管理者に通知が届くにとどめて目視で削除する、または承認制にする等の運用方法を考える必要はありそうです。

RANKING

人気記事

同一カテゴリーの記事