正在使用的xenforo的similar threads插件,需要将主题的中文标题分割成中文字符数组然后搜索,得到结果
如果直接使用php的mb_split()函数,刚将中文字符串打断成一个一个的字,这样得到了相似主题的关键词自然就非常不准确了。但是如果使用专门的词典来截取字符又过于复杂,在网上试了很好,找到一个比较可靠的PHP函数,将中文字符串截取为指定长度的汉字词组,函数如下:
function str_split_unicode($str, $l = 0) {
if ($l > 0) {
$ret = array();
$len = mb_strlen($str, "UTF-8");
for ($i = 0; $i < $len; $i += $l) {
$ret[] = mb_substr($str, $i, $l, "UTF-8");
}
return $ret;
}
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
在使用时,指定截取字符的长度,例如4个汉字为一组,
$threadTitleArray = str_split_unicode($threadTitle,4);