我试图计算用非拉丁语言写的变量中的单词数量(保加利亚语).但似乎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));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。