标签:style http ar io color os 使用 sp for
这些很常用的互联网需求
大家出道时是怎么做的?
大家偷懒时是怎么做的?
值此圣诞节来临之举,http://my.oschina.net/cart/向大家推荐一种新的反向思维解决思路:
function cutWord($str){
$temp = array();
$len = mb_strlen($str, ‘utf-8‘);
for($i=0; $i<=$len; $i++){
for($j=$len-$i; $j>0; $j--){
$temp[] = mb_substr($str, $i, $j, ‘utf-8‘);
}
}
return $temp;
}
$str = ‘管理员‘;
var_dump(cutWord($str));
分词后,我们得到以下数据,当然,上述算法是分割到最后一个词的
如果需要最低2个词的组合,因为1个字构不成实体意义,一般不会成为禁用词,那么可以限制最少2个字。
太长的分词,比如已经超过5个字的词,是不会发生的,那么你也可以限制最多5个字。
掌握的是思想、原理,算法可以灵活改动。
array(6) {
[0]=>
string(9) "管理员"
[1]=>
string(6) "管理"
[2]=>
string(3) "管"
[3]=>
string(6) "理员"
[4]=>
string(3) "理"
[5]=>
string(3) "员"
}
function isDisableWord($str){
$redis = new \redis(你的IP, 你的端口);
//$result = array();
//$redis->multi();
foreach($this->cutWord($str) as $v){
//$result[] = $redis->SISMEMBER(‘nameList‘, $v);
if($redis->SISMEMBER(‘nameList‘, $v)){
return $v;
}
}
//$redis->exec();
//return $result;
return false;
}
$name = trim(‘弗兰克鲁宾逊‘);
if(isDisableWord($name) === false){
echo ‘1.OK!‘;
}else{
echo ‘1.禁止词语是:‘;
var_dump(isDisableWord($name));
}
1.事务提交(主键索引、无大数据占有内存),一次性数据库操作数据库压力小,运行速度快
1.对开发人员素质要求较高
汉字转拼音 敏感词过滤 禁用词查找 提高程序效率另外一种思路:反向思维
标签:style http ar io color os 使用 sp for
原文地址:http://my.oschina.net/cart/blog/356686