ホームページ  >  記事  >  php教程  >  不正な文字をフィルタリングして強調表示する方法

不正な文字をフィルタリングして強調表示する方法

WBOY
WBOYオリジナル
2016-06-13 12:43:101405ブラウズ

//テストを行っているだけです。tmd に似た文字列を再度使用する場合は、文字列内の文字が $StartReplaceHtml または $EndReplaceHtml に含まれる場合は、次の部分を変更する必要があります。 preg_replace.Rules
$CheckedMessage="こんにちは!! 彼 X さん...彼...X... 元気ですか? // チェックされるメッセージ
echo $CheckedMessage . "
";
$CheckedWords=array("his 彼、X が出てきた場合、フィルター文字を "his ="< ;font color='#FF0000'>";
$EndReplaceHtml="
";
$CheckOther= true;//フラグ ビットを設定しますtrue に設定すると、次の if(strstr...) は必要ありません
for($i=0;$i if(strstr($CheckedMessage,$CheckedWords[$i])){ //ここで
を削除できます $CheckedMessage=eregi_replace($CheckedWords[$i],$StartReplaceHtml. $CheckedWords[$i].$ EndReplaceHtml,$CheckedMessage);//「彼の X」などの文字列のみをフィルターする場合 (これは単一の文字ではなく文字列です)、この文を直接記述して $CheckOther を false に設定できます
}
if($CheckOther == true){
$CharStringLength = strlen($CheckedWords[$i]);
for($j=0;$j<$CharStringLength;$j ; 1 つ追加します
$ AssumeLength ;
$CheckedMessage=preg_replace("/(? 内の t は置換されません。フィルタリングが必要な場合、$StartReplace または $EndReplaceHtml でドロップされた文字はルールを変更する必要があります。そうしないと、文字化けが発生します。 if($AssumeLength!=1){//現在インターセプトされている文字が中国語の場合
$j> !

?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。