我试图计算用非拉丁语言写的变量中的单词数量(保加利亚语).但似乎str_word_count()不计算非拉丁语. PHP文件的编码是UTF-8
$str = "текст на кирилица";
echo 'Number of words: '.str_word_count($str);
//this returns 0
解决方法:
您可以使用正则表达式执行此操作:
$str = "текст на кирилица";
echo 'Number of words: '.count(preg_split('/\s+/', $str));
这里我将单词分隔符定义为空格字符.如果可能有其他内容被视为单词分隔符,则需要将其添加到正则表达式中.
另请注意,由于正则表达式中没有utf字符(不在字符串中) – / u修饰符不是必需的.但是如果你想要一些utf字符作为分隔符,你需要添加这个正则表达式修饰符.
更新:
如果您只想用文字处理西里尔字母,您可以使用:
$str = "текст
на 12453
кирилица";
echo 'Number of words: '.count(preg_split('/[^А-Яа-яЁё]+/u', $str));