戻る

配列で禁止語がないか調べる(参考)

PHP

掲示板などから投稿された文章の中に、あらかじめ決めた禁止語が含まれているかどうか、配列を使って調べるサンプルです。最初に配列$prohibitに禁止語を列挙します。そして、調べる対象の文字列に対して、配列内のデータを順番に1個ずつぶつけていきます。

禁止語が含まれているかどうかは、文字列内における配列データの位置をstrpos()関数で取得し、その返り値によって調べています。もし配列データがなければ返り値は「0」となり、禁止語が含まれていないと判断できます。

<?php
header("Content-type: text/html; charset=utf-8");

$prohibit = array("出会い","アダルト","恋愛","無料");

$data1 = "PHPを使うと動的なWebアプリケーションを作れます";
$data2 = "PHPを使うと出会いがあります";
$data3 = "PHPは無料のアダルト向けソフトです";

$findcnt = 0;

foreach($prohibit as $data){
	if(strpos($data1, $data) > 0){
		echo "「{$data}」が見つかりました!<br>";
		$findcnt++;
	}
}

if($findcnt > 0){
	echo "■「{$data1}」の中には禁止語が含まれています!<br><br>";
}
else{
	echo "■「{$data1}」は問題ありません!<br><br>";
}

$findcnt = 0;

foreach($prohibit as $data){
	if(strpos($data2, $data) > 0){
		echo "「{$data}」が見つかりました!<br>";
		$findcnt++;
	}
}

if($findcnt > 0){
	echo "■「{$data2}」の中には禁止語が含まれています!<br><br>";
}
else{
	echo "■「{$data2}」は問題ありません!<br><br>";
}

$findcnt = 0;

foreach($prohibit as $data){
	if(strpos($data3, $data) > 0){
		echo "「{$data}」が見つかりました!<br>";
		$findcnt++;
	}
}

if($findcnt > 0){
	echo "■「{$data3}」の中には禁止語が含まれています!<br><br>";
}
else{
	echo "■「{$data3}」は問題ありません!<br><br>";
}
?>

inserted by FC2 system