|
...
|
...
|
@@ -590,11 +590,8 @@ class UpdateSeoTdk extends Command |
|
|
|
// 前后缀如果已经存在, 就不在拼接当前类型
|
|
|
|
if (FALSE !== strpos($topic, $keyword))
|
|
|
|
return $str;
|
|
|
|
//处理单词复数 s es ies ves
|
|
|
|
$keyword = rtrim($keyword, 'ves');
|
|
|
|
$keyword = rtrim($keyword, 'ies');
|
|
|
|
$keyword = rtrim($keyword, 'es');
|
|
|
|
$keyword = rtrim($keyword, 's');
|
|
|
|
//复数转单数
|
|
|
|
$keyword = Str::singular($keyword);
|
|
|
|
|
|
|
|
$topic_words = explode(" ", $topic);
|
|
|
|
if($type == 'prefix' && Str::startsWith($topic_words[0], $keyword)){
|
|
...
|
...
|
@@ -605,21 +602,27 @@ class UpdateSeoTdk extends Command |
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//随机取
|
|
|
|
//随机取 并单复数去重
|
|
|
|
shuffle($fix_keyword);
|
|
|
|
if (count($fix_keyword) < $num)
|
|
|
|
return implode(", ", $fix_keyword);
|
|
|
|
$keyword = array_slice($fix_keyword, 0, $num);
|
|
|
|
$str = implode(", ", $keyword);
|
|
|
|
|
|
|
|
// 前后缀内部去重
|
|
|
|
foreach ($keyword as $k=>$v){
|
|
|
|
$tmp = rtrim($v, 's');
|
|
|
|
if (substr_count($str, $tmp) > 1) {
|
|
|
|
unset($keyword[$k]);
|
|
|
|
$str = implode(", ", $keyword);
|
|
|
|
$keywords = [];
|
|
|
|
foreach ($fix_keyword as $v){
|
|
|
|
if($num == 0){
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
$is_repeat = false;
|
|
|
|
foreach ($keywords as $keyword){
|
|
|
|
if(Str::singular($keyword) == Str::singular($v)){
|
|
|
|
$is_repeat = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if($is_repeat){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$keywords[] = $v;
|
|
|
|
$num--;
|
|
|
|
}
|
|
|
|
$str = implode(', ', $keywords);
|
|
|
|
}
|
|
|
|
return $str;
|
|
|
|
}
|
...
|
...
|
|