分割中文字符串为数组的自定义PHP函数

Posted by

正在使用的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);

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注