予約を送信すると大量の広告が表示されることがよくあるので、指定したキーワードをブロックしてフィルタリングする機能を作りたいと思い、いくつかの方法を探し、知りたい友人に紹介しました。に。
アイデア:
1. キーワードを 1 行に 1 つずつ具体的に記述します。いくつでも記述できます。
2. PHP はキーワードテキストを読み取り、配列に保存します
3. キーワード配列を走査し、strpos 関数を 1 つずつ使用して、コンテンツにキーワードがあるかどうかを確認します。キーワードがある場合は true を返し、ない場合は false を返します。
PHPコードは次のとおりです:
コードは次のとおりです
| コードをコピー
|
/* PHP でキーワードをフィルタリングするには strpos 関数を使用します */
//キーワードフィルター機能
関数 keyWordCheck($content){
// 空白を削除します
$content = トリム($content);
//キーワードテキストを読む
$content = @file_get_contents('keyWords.txt');
//配列に変換
$arr =explode("n", $content);
//トラバーサル検出
for($i=0,$k=count($arr);$i
// この配列要素が空の場合、このループをスキップします
if($arr[$i]==''){
続けます
}
// キーワードが検出された場合は、一致したキーワードを返して操作を終了します
if(@strpos($str,trim($arr[$i]))!==false){
//$i=$k;
$arr[$i] を返します;
}
}
// キーワードが検出されない場合は false を返します
false を返します;
}
$content = '公開するテキストコンテンツは次のとおりです。 。 。 ';
// キーワードをフィルタリングします
$keyWord = keyWordCheck($content);
// キーワードが存在するかどうかを判断します
if($keyWord){
echo '投稿したコンテンツにはキーワードが含まれています'.$keyWord;
}その他{
エコー「おめでとうございます!」キーワードで検出';
// 次に、ライブラリの書き込み操作を実行して公開アクションを完了します。
}
|
例 2 (注: 中国語のキーワード フィルタリングで使用されるキーワード ファイルは utf-8 でエンコードされています
コードは次のとおりです
コードをコピー |
|
/**
* 禁止キーワードの検出
*
* @param string $string 検出する文字列
* @param string $fileName シールドキーワードファイル
* @return bool
*/
関数 banwordCheck( $string, $fileName )
{
if ( !($words = file_get_contents( $fileName )) ){
die('ファイル読み取りエラー!');
}
$string = strto lower($string);
$matched = preg_match('/'.$words.'/i', $string, $result);
if ( $matched && isset($result[0]) && strlen($result[0]) > 0 )
{
if ( strlen($result[0]) == 2 ){
$matched = preg_match('/'.$words.'/iu', $string, $result);
}
if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ) {
true を返します;
}その他{
false を返します;
}
}その他{
false を返します;
}
}
$content = 'キーワードをテスト';
if ( banwordCheck($content, './banwords.txt') ){
エコー「一致しました!」;
}その他{
エコー「一致しません!」;
}
|
http://www.bkjia.com/PHPjc/629632.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/629632.html技術記事予約を送信すると大量の広告が表示されることがよくあります。その後、指定したキーワードをブロックしてフィルタリングする機能を作りたいと思い、いくつかの方法を探して皆さんに紹介しました...
。