寫(xiě)了一個(gè)垃圾評(píng)論過(guò)濾插件,但是總覺(jué)得哪里有問(wèn)題,請(qǐng)各位提提建議,代碼如下:1.config.php
<?php
return [
'processing_mode' => 1,
'keyword' => '去,的', //填寫(xiě)要過(guò)濾的關(guān)鍵字以英文,號(hào)分割
];
2.類(lèi)文件
<?php
class MaliciousCommentsFiltering
{
protected $config;
public function __construct()
{
//引入配置文件
$this->config=include 'config.php';
}
/**
* 搜索關(guān)鍵字并替換
* @param $searchKeyword 要搜索的關(guān)鍵字
* @return mixed|string 返回處理結(jié)果
*/
public function senseKey($searchKeyword)
{
$keyword = $this->config['keyword'];
$keyword = explode(',', $keyword);
$reslut = '';
foreach ($keyword as $value) {
if (strpos($searchKeyword, $value) !== false) {
//如果processing_mode設(shè)置為1代表,用*號(hào)代替關(guān)鍵字
if ($this->config['processing_mode'] == 1) {
$reslut = str_ireplace($value, '***', $searchKeyword);
} else {
//如果返回300代表存在關(guān)鍵字
$reslut = 300;
}
}
}
return $reslut;
}
}
歡迎各位發(fā)表自己的觀點(diǎn)
4 回答

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
foreach循環(huán)如果匹配到2個(gè)以上的敏感詞,你的result變量只屏蔽了最后一個(gè)詞

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
可以優(yōu)化下效率,比如一個(gè)位置命中了敏感詞,是否可以將這塊位置標(biāo)記為以匹配,別的關(guān)鍵字就略過(guò)此位置。

呼喚遠(yuǎn)方
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
用正則呢,以下是手冊(cè)上的:
$string = 'The quick brown fox jumps over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
輸出:The bear black slow jumps over the lazy dog.
- 4 回答
- 0 關(guān)注
- 727 瀏覽
添加回答
舉報(bào)
0/150
提交
取消