ホームページ  >  記事  >  バックエンド開発  >  PHP キーワード インターセプト プログラム、インターセプト後にどの単語が不正なフレーズであるかを知る方法

PHP キーワード インターセプト プログラム、インターセプト後にどの単語が不正なフレーズであるかを知る方法

WBOY
WBOYオリジナル
2016-06-13 13:30:581129ブラウズ

PHP キーワード インターセプト プログラム、インターセプト後にどの単語が不正なフレーズであるかを知るにはどうすればよいですか?
1.panduan.php

/**
* テキスト内にキーワードがあるかどうかを判断します
*/
function filter_text($text, $badstring){
$filter =explode( '|', $badstring);
foreach ($filter as $key) {
if(strpos($text, $key) !== false){
return true;
}
}
return false;
}

?>

2. filter.php
$badstring="やめてください|このコンテンツ|許可されていません";
?>

3.index.php
require_once("panduan.php");
require_once("filter .php");
$biaoti="このコンテンツが含まれている場合は合格しません! ";
if(filter_text($biaoti, $badstring)){
echo "申し訳ありませんが、このコンテンツはプロンプトには「 $***** が含まれています。テキストは表示できません。送信する前に「このコンテンツ」テキストを削除してください!";
exit();
}
?>



上記のコードは、事前に設定されたキーワードを正しくインターセプトできますが、どのキーワードが不正であるかをプロンプトするにはどのように記述すればよいでしょうか?引用符で囲まれた内容を取得した場合: "$*****"?

助けてください、ありがとう!

-----解決策--------------------------------
はここで
if(strpos($text, $key) !== false){
return $key;
}

ここ
if( filter_text($biaoti, $badstring)){
echo "申し訳ありませんが、指示されたコンテンツにはテキスト「$*****」が含まれているため、表示できません。送信する前にテキスト「このコンテンツ」を削除してください!";
exit();
}

次のように変更します

$badstr=filter_text($biaoti, $badstring);

if($badstr){
echo "申し訳ありませんが、指示されたコンテンツには「.$ badstr」が含まれています。テキストを表現できません。送信する前に「このコンテンツ」テキストを削除してください。";
exit();
}

これについて。
------解決策---------

PHP コード


$text = 'やめて';
$badstring = "/ブロックします|このコンテンツ|許可されません/";
if (preg_match($badstring, $text, $matchs)){
    echo $matchs[0] //var_dump($matchs);
}
<br><font color="#e78608">------解決策------------------</font><br>
<strong>2 つの効率について</strong><br><br>テストコード: <br>
PHP コード
$start = マイクロタイム(true);
$text = 'やめて';
$badstring = "/ブロックします|このコンテンツ|許可されません/";
$count = 0;
for($i = 0; $i 
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。